【发布时间】:2012-05-22 18:53:30
【问题描述】:
我正在尝试从字符串中删除除 x 之外的所有非数字字符。我有点困惑。
我当前的代码
number.replaceAll("[^\\d\\x]", "")
提前致谢。
【问题讨论】:
-
您的正则表达式的所有问题在于您不必要地转义了 x。
我正在尝试从字符串中删除除 x 之外的所有非数字字符。我有点困惑。
我当前的代码
number.replaceAll("[^\\d\\x]", "")
提前致谢。
【问题讨论】:
使用这个:[^x0-9]
您可以在http://gskinner.com/RegExr/查看它
【讨论】:
你的正则表达式是
number.replaceAll("[^\\dxX]+", "");
无需转义字符类中的普通字符。还有一个改进是在字符类后面加上量词+,这样这些字符的序列就会立即被替换,而不是每个字符都单独替换。
在 Xisb 上阅读一些正则表达式基础知识:What absolutely every Programmer should know about regular expressions
【讨论】:
你应该使用这个:
number.replaceAll("[\\D&&[^x]]", "")
【讨论】:
我想通了,也许有更好的方法来做到这一点。
number.replaceAll("[^\\d+xX]", "");
【讨论】: