gpt4 book ai didi

java - RegEx - 从匹配中排除字符序列

转载 作者:行者123 更新时间:2023-12-03 00:01:47 24 4
gpt4 key购买 nike

我正在努力使用正则表达式,希望在这里找到一些指导。我已经在这里和谷歌上进行了搜索,但我很难找到合适的术语。我可以想象非捕获组会帮助我,但我不知道如何应用它们。

基本上我想找到Java单行注释,它们是“尖叫”(没有小写字母):

^[ \t]*//[^a-z]+?$

现在我还发现这样的评论:

// PN-123456 
// ITK 12345
//IT-12345

这些评论对我来说是有效的,所以我想将它们从上面的正则表达式中排除。总是这样的模式:

  1. 可选空格
  2. “PN”或“IT”或“ITK”
  3. 连字符、空格或什么都没有
  4. 四到六位数字
  5. 可选空格

这是我对这种模式的方法:

[ ]?PN[ -]?[0-9]{1,6}

但现在我无法将两个表达式统一在一个正则表达式中。这将如何运作?

TIA,彼得

最佳答案

你想要一个negative lookahead :

^//(?!\s*(?:PN|ITK?)[ -]?[0-9]{1,6}[ ]*$)[^a-z]+?$

请注意,[^a-z]+ 要求不能有小写字母,但与“仅大写字母”并不完全相同。例如,它会捕获注释 //----------,甚至是空的 // (只要有空格)。

示例:http://regexr.com?31app

关于java - RegEx - 从匹配中排除字符序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11136163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com