Java正则表达式,不是某个字符,后跟单词或以单词开头

时间:2017-02-28 18:14:46

标签: java regex

我想找到一个模式,其中[^#$%_-]COMMENT应为true,字符串" COMMENT"也应该是真的。

Case 1 : @COMMENT true
Case 2 : #COMMENT false
Case 3 : COMMENT true

对于案例3,我得到了假 我的正则表达式为[^#\'\"$%_-|]COMMENT

3 个答案:

答案 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

测试输出