[英]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.