当前位置: 首页 > 知识库问答 >
问题:

正则表达式[重复]的冗余字符和数字预期错误

杜河
2023-03-14

我正在编写一个脚本,从字符串中取出#{text}的所有实例,以便使其成为动态的。

如何使用正则表达式 #{(. *?)} 而不会出现错误?

我知道正则表达式可以工作,但由于字符的原因,我无法将其分配给字符串。

谢谢

共有1个答案

邢卓
2023-03-14

在正则表达式中,哈希(#)不需要转义,因为它不包含任何特殊值。

在Java中,您只需要避开大括号的开头,因此您需要编写的正确正则表达式是,\{.*}

试试这个Java代码,

public static void main(String[] args) {
    String s = "Dear #{abc}, your balance is #{xyz}";
    String regex = "#\\{.*?}";
    System.out.println("Before: " + s);
    s = s.replaceAll(regex, "test");
    System.out.println("After: " + s);
}

根据需要打印以下内容,

Before: Dear #{abc}, your balance is #{xyz}
After: Dear test, your balance is test

此外,为了非详尽地抓取任何字符,您可以编写[^}]*而不是. *? ,因为前者会更好。

 类似资料:
  • 我正在编写一个脚本,从字符串中取出#{text}的所有实例,以便使其成为动态的。 如何使用正则表达式#{(.*)}呢不会出错? 我知道正则表达式可以工作,但由于字符的原因,我无法将其分配给字符串。 谢谢

  • 问题内容: 有没有办法使用正则表达式来匹配重复的字符集?例如: 我知道那是错的。但是有什么可以匹配这种效果的吗? 更新: 您可以使用嵌套捕获组吗?像什么? 问题答案: 将要重复的正则表达式放在括号中。例如,如果您要重复5次: 或者,如果您想要任意数量的重复(0或更多): 或一个或多个重复: 编辑 以回应更新 正则表达式中的括号有两个作用:它们将正则表达式中的一系列项目组合在一起,以便您可以将运算符

  • 我不完全确定这个标题是否有意义,但我不确定如何更好地解释。我正在尝试匹配一个字符串,该字符串以一个或多个,以相同数量的。我尝试了许多不同的方法,但我不知道如何在regex中执行此操作,或者是否可能!有人能把我送到正确的方向吗? 例子 匹配: 匹配: 不匹配: 不匹配: 等等,你明白了。

  • 我的正则表达式是 当我在java中使用Pattern.complie()编译时,我得到了*非法重复字符* 我测试了这个正则表达式 当我编译这个时,它没有显示错误。 为什么会发生这种情况?

  • 问题内容: 我正在尝试创建一个匹配字符串的正则表达式,如果它连续有3个或多个重复字符(例如aaaaaa,testtttttt,otttttter)。 我尝试了以下方法: 连续 匹配 任意 3个字符,但不 连续的 字符…我在哪里出错? 问题答案: 您要的内容无法使用 真正的 正则表达式完成,您需要的是(不规则的)反向引用。尽管许多正则表达式引擎实现了它们,但Go使用的RE2却没有。RE2是一种快速的

  • 关于正则表达式有很多类似的问题,但我仍然对以下情况感到困惑: