【问题标题】:Java remove non numeric characters from string except xJava从字符串中删除除x之外的非数字字符
【发布时间】:2012-05-22 18:53:30
【问题描述】:

我正在尝试从字符串中删除除 x 之外的所有非数字字符。我有点困惑。

我当前的代码

number.replaceAll("[^\\d\\x]", "")

提前致谢。

【问题讨论】:

  • 您的正则表达式的所有问题在于您不必要地转义了 x。

标签: java regex


【解决方案1】:

使用这个:[^x0-9]

您可以在http://gskinner.com/RegExr/查看它

【讨论】:

  • 我也忘了指定大写 x,这样可以吗 [^xX0-9]?谢谢努尔兰。
【解决方案2】:

你的正则表达式是

number.replaceAll("[^\\dxX]+", "");

无需转义字符类中的普通字符。还有一个改进是在字符类后面加上量词+,这样这些字符的序列就会立即被替换,而不是每个字符都单独替换。

Xisb 上阅读一些正则表达式基础知识:What absolutely every Programmer should know about regular expressions

【讨论】:

    【解决方案3】:

    你应该使用这个:

    number.replaceAll("[\\D&&[^x]]", "")
    

    【讨论】:

      【解决方案4】:

      我想通了,也许有更好的方法来做到这一点。

      number.replaceAll("[^\\d+xX]", "");
      

      【讨论】:

      • @George - 为什么使用加号?这不会导致加号被跳过吗?
      猜你喜欢
      • 1970-01-01
      • 2013-06-24
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      相关资源
      最近更新 更多