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