正则表达式模式,用于排除字符串中的数字和特殊字符

时间:2017-04-24 07:34:18

标签: java regex

正则表达式模式,用于排除字符串中的数字和特殊字符。
我需要在下面的字符串中排除数字和特殊字符。

  

名称为" 11.KGGS.003022..CBCL的服务。"已经活跃了   2017年4月17日00:00:00和9月12日星期四00 00:00:00。

我需要在画面中使用该模式,regex[^0-9]无效。 请帮助我。

1 个答案:

答案 0 :(得分:2)

你可以这样使用replaceAll

str = str.replaceAll("[0-9!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]", "");

<强>输出

A service with name KGGSCBCL is already active between Mon Apr    and Thu Dec  

我不确定这个空间是否像一个特殊字符一样,如果是,你可以改用它:

str = str.replaceAll("[0-9!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?\\s\\n]", "");
//------------------------------------------------Space and back line ^--^

<强>输出

AservicewithnameKGGSCBCLisalreadynactivebetweenMonAprandThuDec

如果你想在每个单词之间只留一个空格,你可以使用它:

str = str.replaceAll("[0-9!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]", "").
        replaceAll("\\s+", " ");
//------------------^^^^----^---------replace multiple spaces with only one

<强>输出

A service with name KGGSCBCL is already nactive between Mon Apr and Thu Dec 

解决方案2:

排除数字和特殊字符其余部分应仅为字母[a-zA-Z],因此您也可以使用此字符:

str = str.replaceAll("[^a-zA-Z]", "");