Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串末尾的特殊字符与正则表达式匹配_Java_Regex - Fatal编程技术网

Java 将字符串末尾的特殊字符与正则表达式匹配

Java 将字符串末尾的特殊字符与正则表达式匹配,java,regex,Java,Regex,我想匹配出现在字符串或单词末尾的特殊字符。特殊字符是\,;:-_ 什么正则表达式模式可以用于此操作?$匹配字符串结尾,请尝试: [\\.,;:\-_]+$ 由于\是特殊的正则表达式字符,因此应使用\对其进行转义,使其成为正则表达式中的\。另外,中的-具有特殊意义,因为它用于创建一系列字符,如a-z,因此需要对其进行转义 另外,由于您询问Java,您需要知道\需要写成“\\\”,因为它也是字符串文字中的特殊字符,所以带有regex的字符串看起来像 "[\\\\.,;:\\-_]+$" 您可以使

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


什么正则表达式模式可以用于此操作?

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

[\\.,;:\-_]+$
由于
\
是特殊的正则表达式字符,因此应使用
\
对其进行转义,使其成为正则表达式中的
\
。另外,中的
-
具有特殊意义,因为它用于创建一系列字符,如
a-z
,因此需要对其进行转义

另外,由于您询问Java,您需要知道
\
需要写成
“\\\”
,因为它也是字符串文字中的特殊字符,所以带有regex的字符串看起来像

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

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

在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_
有关更多详细信息,请参阅

说明:


您不需要在
[…]
中转义
,但转义
-
会很好,因为它用于在字符类中创建字符范围,如
[a-z]
。谢谢!我想从那以后。是正则表达式字符,它也应该转义。通常会转义,但
[]
也是转义某些特殊字符的好机制,例如,您可以通过这种方式转义
[*]
[$]
和许多其他正则表达式元字符。另外,由于Devendra询问特殊字符,您可能应该使用
+
来匹配其中的一个或多个。[\\\\,;:\\-\]$不起作用。当我从中删除$时,所有特殊字符都会匹配,但不仅仅是字符串/单词末尾的字符。请建议使用工作表达式。对于以特殊字符结尾的此类单词,如何仅删除特殊字符?