【问题标题】:Regex for replacing numbers to characters用于将数字替换为字符的正则表达式
【发布时间】:2018-06-01 01:13:10
【问题描述】:

我有一个字符串,例如"kdf343kkkk4k4"。我需要找到这个字符串上的数字并将一个数字替换为特定字符,如'X'。输出应该类似于"kdfXXXkkkkXkX"

每个数字都应替换为'X'

343 = XXX

我尝试使用正则表达式替换,但它全部替换。

343 = X

我正在使用以下正则表达式:

x.replaceAll("([0-9])+", "X");

请告诉我如何做到这一点。

【问题讨论】:

  • 省略括号和+ 符号。

标签: java regex


【解决方案1】:

使用这个:

x = x.replaceAll("\\d", "X");

您不需要 +,您可以使用它指定将“一个或多个”数字替换为单个 X

【讨论】:

  • @owlstead 当我记得 \\d 甚至比 [0-9] 更短时,我添加的部分是我在解释 +
  • "你不需要+" -- 其实在这种情况下,你不需要想要 +
【解决方案2】:

在您的正则表达式中删除 + symbol

x.replaceAll("([0-9])", "X");

并且不要忘记重新分配它,因为String在java中是不可变的

  x= x.replaceAll("([0-9])", "X");

【讨论】:

    【解决方案3】:

    方法一:

    String name = "Test656887";
    name = name.replaceAll("[0-9]","X");
    System.out.println(name);
    

    方法二:

     String name = "Test656887";
     name = name.replaceAll("\\d","X");
     system.out.println(name);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 2018-07-13
      相关资源
      最近更新 更多