斯卡拉:匹配特殊字符
问题描述:
在斯卡拉我需要测试一个字符串具有以下任何“特殊”字符:[email protected]#\$^%&*()_-\+={}[]|;:"'<,>.?/
斯卡拉:匹配特殊字符
我不能简单地用'nonword'
"\\W"
正则表达式是因为字符串可能有西里尔文字符的正则表达式"\\W"
也匹配。尝试使用正则表达式:
new Regex("""~`[email protected]#\$^%&*()_-\+={}[]|;:"'<,>.?/""")
结果异常:
java.util.regex.PatternSyntaxException: Illegal repetition near index 17 ~`[email protected]#\$^%&*()_-\+={}[]|;:"'<,>.?/
^
at java.util.regex.Pattern.error(Pattern.java:1924)
at java.util.regex.Pattern.closure(Pattern.java:3104)
at java.util.regex.Pattern.sequence(Pattern.java:2101)
任何想法?
答
您需要将所有特殊字符放入字符类中。
[[email protected]#$^%&*\\(\\)_+={}\\[\\]|;:\"'<,>.?`/\\\\-]
如果你想添加的空间还,那么它应该是
[[email protected]#$^%&*\\(\\)_+={}\\[\\]|;:\"'<,>.?` /\\\\-]
提出的所有字符为字符类。 '[〜!@#\\ $ ^%&* \\(\\)_ + = \\ {\\} \\ [\\] |;:''。? - ]' – 2014-09-23 11:49:54
谢谢,它适用于所有字符,除了['\ /]如何添加这些? – DarqMoth 2014-09-23 12:19:01
你想添加空格吗?在下面的答案中,我在字符类中添加了一个正斜杠和反斜杠 – 2014-09-23 12:22:12