我想找到一个模式,其中[^#$%_-]COMMENT
应为true,字符串" COMMENT"也应该是真的。
Case 1 : @COMMENT true
Case 2 : #COMMENT false
Case 3 : COMMENT true
对于案例3,我得到了假
我的正则表达式为[^#\'\"$%_-|]COMMENT
答案 0 :(得分:1)
尝试使用lookbehind断言QMessageBox
弦乐(?<![#$%'_"-])COMMENT
如果你真的想要匹配之前的角色,以及评论,
这将是"(?<![#$%'_\"-])COMMENT"
弦乐\S?(?<![#$%_-])COMMENT
使用"\\S?(?<![#$%'_\"-])COMMENT"
加载课程。
当你在负面断言中使用类时,你不需要
否定了等级[stuff not allowed]
,因为它被认为是不允许的
通过否定的断言。
答案 1 :(得分:1)
你可以使用它。
^[^#$%-]?COMMENT$
[^#$% - ] - &GT;不包含任何这些字符。
String c1 = "@COMMENT";
String c2 = "#COMMENT";
String c3 = "COMMENT";
System.out.println(c1.matches("^[^#$%-]?COMMENT$"));
System.out.println(c2.matches("^[^#$%-]?COMMENT$"));
System.out.println(c3.matches("^[^#$%-]?COMMENT$"));
答案 2 :(得分:0)
对于我们的案例,正确的java正则表达式将是
String regex = "[^#\'\\"\$%\-|]COMMENT"
您可以在regex101
测试输出