正则表达式可验证所有方案

时间:2019-03-05 16:26:17

标签: java regex

我正在用Java编写正则表达式,该正则表达式与以下内容匹配且与无效字符串不匹配。我无法正确过滤它,因此它仅匹配有效列表,而不匹配无效列表。

这是我的正则表达式-(?!\!)([\(\)XSAa\\\#\+\-\s\.\!])+)

有效字符串-

  

“ A \\#A \\#A \\#”,“ + \#\#\#”,“(\\#\\#\\#)\\#\\#\\#- \\#\\#\\#\\#“,“\#\#\#。\#\#\#。\#\#\#\#“,“!\#\#“,“X- \#\#\#\#“,” \#\#\#\#\#-SSSS“,” Aaaaa !!“`

在这里它与!\\#\\#不匹配,因为我已经说过它不应该包含!

无效的输入-!A!\\#!A!\\#!A!\\#, !X, A#A#A#, !a!a!a!a!a

但不幸的是,它与A#A#A#相匹配,这是一个失败的情况。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

在该注释的末尾有一个无与伦比的括号,但否则只是一个负向的前瞻性(因此它不以“!”开头),其后是字符类中的任意数量的字符。这些包括“ A”和“#”,因此将接受这些字符的任何序列。我不知道您真正想要匹配什么,但这就是为什么A#A#A#匹配的原因。