2016-03-29 32 views
0

我想用空白替換特殊字符。所以,我想正則表達式不能替代特殊字符

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

我wnat下面的字是000 VEKTOR

OOO 「VEKTOR」

+0

'this.name.replaceAll( 「[^ A-ZA-Z] +」, 「」).trim()' –

+0

替換應該接受[噸字符串作爲第一argumenet不正則表達式。 –

+0

已經嘗試過,並不工作 – Luxy

回答

1

String.replace需要一個文字的第一個參數。 replaceAll使用一個正則表達式

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

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();