有人可以告訴我如何做一個Java正則表達式,它接受一個字符串並返回一個字符串,但刪除了所有字符但是a-z和0-9?Java正則表達式幫助
I.e.給出一個字符串a%4aj231*9.+
它會返回a4aj2319
謝謝。
有人可以告訴我如何做一個Java正則表達式,它接受一個字符串並返回一個字符串,但刪除了所有字符但是a-z和0-9?Java正則表達式幫助
I.e.給出一個字符串a%4aj231*9.+
它會返回a4aj2319
謝謝。
\ d是數字,\ p {L}是a-z和A-Z。
str.replaceAll("[^\\d\\p{L}]", "");
如果你想AZ和0-9,但不AZ然後
str.replaceAll("[^\\p{Lower}\\p{Digit}]", "");
我沒有和\ w一起去,因爲它也包含下劃線。 – lins314159 2010-02-18 03:34:21
你說得對,我會改變這一點 – Lombo 2010-02-18 04:32:27
str = str.replaceAll("[^a-z0-9]+", "");
如果你還意味着包括大寫字符,那麼你可以使用
str = str.replaceAll("[^A-Za-z0-9]+", "");
或稍微發飆
str = str.replaceAll("[_\\W]+", "");
感謝您的快速回復。我剛剛意識到,如果我想保留空間以及呢? – vbn 2010-02-18 03:26:46
只需在方括號內添加任何不想替換的字符即可。 – lins314159 2010-02-18 03:27:28
\ p {L}也匹配大量的其他Unicode字符,例如Δ,ね和傻。這種表達會使它們完整無缺。 – Sean 2010-02-18 04:13:59