【问题标题】:Keep Partial Digits(S4,K2), all Alphabets and Full stops But remove all others digits (simple and those have decimal point)保留部分数字(S4,K2),所有字母和句号但删除所有其他数字(简单且有小数点)
【发布时间】:2015-07-31 19:15:44
【问题描述】:

我想保留部分数字,但从字符串中删除完整数字。

public static void main(String[] args){
        String testString = "I walked 2 miles in 4 hour. I went to K2. I have 2000 Rupes only. This is 2.4.";
        testString = testString.replaceAll("[0.0-9.9]", "");
        System.out.println(testString);
}

这给了我以下结果。
“我每小时走了几英里我去了 K 我只有卢比这是”

但我想保留部分数字(如 K2)。只想删除完整的数字(2、4 等)。此外,我想保留句号,但想删除小数点数字(2.4 等)。

我想要这些结果。
“我每小时走了几英里。我去了 K2。我只有卢比。这是。”

正确的正则表达式应该是什么?
我会感谢你的。

【问题讨论】:

    标签: java regex string


    【解决方案1】:

    尝试:

    (?<![a-zA-Z])\d+(\.\d+)?(?![a-zA-Z])
    

    对于 Java:(?&lt;![a-zA-Z])\\d+(\\.\\d+)?(?![a-zA-Z])

    地点:

    • (?&lt;![a-zA-Z]) - 消极的向后看,搜索字母
    • \d+(\.\d+)? - 数字
    • (?![a-zA-Z]) - 负前瞻,搜索字母

    负查找检查是否有直接在后面的数字之前没有字母,在它替换子字符串之前

    DEMO

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 2019-07-31
      • 2017-03-21
      • 2022-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多