有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用正则表达式替换表达式,如+{user}100

我有这样一个字符串:

Test+${user}100,very important text

我正在尝试删除部分+${user}100

为什么我的代码不起作用

noSpecialSigns = noSpecialSigns.replaceAll("\\+$\\{user}\\d","");

共 (2) 个答案

  1. # 1 楼答案

    必须转义所有加号+和括号{},因为它们是正则表达式语法的一部分,所以正则表达式应该是^{}

    noSpecialSigns = noSpecialSigns.replaceAll("\\+\\$\\{user\\}\\d+", "");
    
  2. # 2 楼答案

    这里有两个问题:

    • 您需要转义$符号
    • \d将只匹配一个数字。您需要添加一个+来匹配一系列数字:
    noSpecialSigns = noSpecialSigns.replaceAll("\\+\\$\\{user}\\d+","");