我想创建一个与以下字符匹配的正则表达式
'<', '>', '(', ')', '[', ']', '\', '.', ',', ';', ':', '@', '"'
我构建了字符串
String reg = "< | > | \\( | \\) | \\[ | \\] | \\\\ | \\. | , | ; | : | @ | \" | \\s"
然而,当我执行以下操作时它似乎不起作用。
String s = "h\"; //this is passed in via console input, read by Scanner()
if(s.matches(".*"+reg+".*")
//do stuff
它不起作用。我不确定如何正确地将该字符串表示为正则表达式,我希望有人可以指出什么是关闭的。
答案 0 :(得分:1)
请勿使用alternation,而是使用character class。
[<>()\[\]\\,\.;:@\"]
字符类匹配方括号内的一个字符。
在Java中:
String reg = "[<>()\\[\\]\\\\,\\.;:@\"\\s]"
答案 1 :(得分:0)
String regex = "[<>\\(\\)\\[\\]\\\\,\\.;:@\"]";