使用Regex匹配字符串末尾的特殊字符

时间:2014-01-20 05:31:38

标签: java regex

我想匹配出现在字符串或单词末尾的特殊字符。特殊字符为\.,;:-_

可以使用什么正则表达式?

2 个答案:

答案 0 :(得分:4)

$匹配字符串的结尾,请尝试:

[\\.,;:\-_]+$

由于\是特殊的正则表达式字符,因此您应该使用\将其转义,因此它在正则表达式中变为\\character class中的-也有特殊含义,因为它用于创建a-z等字符范围,因此您需要将其转义。

此外,由于您询问Java,您需要知道\需要写为"\\",因为它也是String literal中的特殊字符,因此带有正则表达式的String看起来像

"[\\\\.,;:\\-_]+$"

答案 1 :(得分:2)

您可以使用正则表达式\w+[\\.:;_,-]+(?= |$)

在java代码中使用类似的东西:

    String val="dev\\ devendra. devendra, dev dev, dev; devendra: wan.gikar devendra: windchill- windchill- serviceCenter_ sC_Windchill";
    String REGEX="\\w+[\\\\.:;_,-]+(?= |$)";
    Pattern pattern = Pattern.compile(REGEX);
    Matcher matcher = pattern.matcher(val);
    while(matcher.find()){
        System.out.println(matcher.group());
    }

<强>输出

dev\
devendra.
devendra,
dev,
dev;
devendra:
devendra:
windchill-
windchill-
serviceCenter_

有关详细信息,请参阅 this

说明:

enter image description here