正则表达式中捕获特殊字符时出错

时间:2015-09-01 06:04:49

标签: java regex

我写了一个正则表达式来捕获输入字符串中的特殊字符,但它也捕获了数字。这是正则表达式,

final String REGEX="[^.,%*$#@?^<!&>'|/\\\\~\\[\\]{}+-=\"]*";

我只需要抓住上面提到的字符。请帮帮我。

2 个答案:

答案 0 :(得分:2)

您使用未转义的连字符创建了一个范围。

错位的连字符使模式匹配这些字符:

enter image description here

在课程结束时逃离连字符或位置:

final String REGEX="[^.,%*$#@?^<!&>'|/\\\\~\\[\\]{}+=\"-]*";
                                                      ^

这是this regex demo

答案 1 :(得分:2)

将连字符(-)移动到角色类的末尾:

final String REGEX="[^.,%*$#@?^<!&>'|/\\\\~\\[\\]{}+=\"-]*"

当前位置(+-=),表示从+=的范围。这个范围包括,a.o。所有数字。