繁体   English   中英

正则表达式不适用于替换特殊字符

[英]Regex not working for replacing special characters

我想什么都不要替换特殊字符。 所以我尝试了

this.name.replace("[^a-zA-Z]+", "").trim()

我把下面的词冠为000 Vektor

OOO“ Vektor”

replace的文档说:

用指定的文字替换序列替换此字符串中与文字目标序列匹配的每个子字符串。

它不会使用正则表达式。

replaceAll的文档说:

用给定的替换项替换该字符串中与给定的正则表达式匹配的每个子字符串。

因此,您可以使用:

this.name.replaceAll("[^a-zA-Z]+", "").trim();

您也可以将replaceFirst与正则表达式一起使用,尽管此处不使用。


另外,在评论中您说您已尝试过。 我怀疑这是因为您只使用了:

this.name.replaceAll("[^a-zA-Z]+", "").trim();

但是java字符串是不可变的 ,并且不会自行更改。 因此,您应该使用:

this.name = this.name.replaceAll("[^a-zA-Z]+", "").trim();

String.replace采用字面量的第一个参数。 replaceAll使用正则表达式

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM