除了数字和度数符号之外,从字符串中删除所有特殊字符?

时间:2016-11-21 21:18:18

标签: java android regex string

我想从字符串中删除除数字和度数符号°之外的所有特殊字符。我怎么能用正则表达式做到这一点?

我知道.replaceAll(“[^ a-zA-Z0-9] +”,“”)将删除所有特殊字符,如何将度数符号重新放入?

2 个答案:

答案 0 :(得分:2)

您可以使用\W并使用字符类减法

.replaceAll("[\\W_&&[^°]]+","")

enter image description here

另一种方法是将度数符号添加到否定字符类中,因为否定字符类匹配字符类中除之外的所有字符

.replaceAll("[^a-zA-Z0-9°]+","")
                        ^

enter image description here

经测试:http://www.ocpsoft.org/tutorials/regular-expressions/java-visual-regex-tester/

答案 1 :(得分:2)

您可以使用unicode字符:°\u00b0。所以你的正则表达式看起来像这样:

[^a-zA-Z0-9\\u00b0]+

示例:https://regex101.com/r/ZgGdHj/3