我正在使用RegEx,并希望在这里找到一些指导.我已经在这里和Google上搜索过,但我很难找到合适的条款.我可以想象非捕获组会帮助我,但我不知道如何应用它们.
基本上我想找到Java单行评论,这是"尖叫"(没有小写字母):
^[ \t]*//[^a-z]+?$
Run Code Online (Sandbox Code Playgroud)
现在我也找到这样的评论:
// PN-123456
// ITK 12345
//IT-12345
Run Code Online (Sandbox Code Playgroud)
这些评论对我有效,所以我想将它们从上面的RegEx中排除.它始终是这种模式:
这是我对这种模式的处理方法:
[ ]?PN[ -]?[0-9]{1,6}
Run Code Online (Sandbox Code Playgroud)
但现在我无法在一个RegEx中将两个表达式联合起来.这怎么样?
TIA,彼得
你想要一个负面的预测:
^//(?!\s*(?:PN|ITK?)[ -]?[0-9]{1,6}[ ]*$)[^a-z]+?$
Run Code Online (Sandbox Code Playgroud)
请注意,[^a-z]+要求不会有小写字母,但与"仅大写"不完全相同.例如,它将捕获注释// ----------,甚至是空的//(只要有空格).