2014-01-20 77 views

回答

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

+0

如何删除特殊字符中的特殊字符? –

4

$匹配字符串的结尾这样试试:

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

由于\是特殊的正则表达式字符,你应该用\逃避它,所以它在正则表达式变得\\character class中的-也具有特殊含义,因为它用于创建像a-z这样的字符范围,因此您需要将其转义。

此外,由于你是问关于Java,你需要知道\需要写成"\\",因为它也是在字符串字面特殊字符,所以字符串的正则表达式看起来像

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

你并不需要在'[...]'逃脱'.',但它会很高兴,因为它被用来创建逃跑'-'字符类中的字符范围,如'[az]'。 – Pshemo

+0

谢谢!我以为那是因为。是一个正则表达式字符它应该也逃脱。 – user987339

+1

通常它会,但'[]'也是很好的机制来转义一些特殊字符,例如你可以用这种方式逃避'[*]''[$]'和其他许多正则表达式元字符。 – Pshemo

相关问题