Java Regex用于在括号之间插入文本



我有一个字符串

a = "stringWithBraces()"

我想创建以下字符串

"stringWithBraces(text)"

我如何使用正则表达式?

我尝试了:

a.replaceAll("\(.+?\)", "text");

但要明白:

stringWithBraces()

您可以使用LookAheads并做类似的事情:

(?<=().*?(?=))

live demo

这样做:

String a = "stringWithBraces()";
a = a.replaceAll("(?<=\().*?(?=\))", Matcher.quoteReplacement("text"));
System.out.println(a);

输出:

stringWithBraces(text)

请注意,与replaceAll()有关,replacement字符串具有一些特殊的字符。因此,您最有可能使用Matcher.quoteReplacement()来逃脱这些并安全。

您可以使用以下方式:

a = a.replaceAll("\((.*?)\)", "(text)");

您必须用 (text)

替换括号之间的每件事

+至少需要一个char,此处添加的?表示最短的匹配,所以" ...(。(...(。(..."。(...(。"。

a.replaceAll("\(.*?\)", "(text)");

您可能已经打算使用replaceFirst;虽然我认为不是。

您还可以让DOT .匹配新的线字符,以进行多行匹配项,使用dot_all选项(?s)

a.replaceAll("(?s)\(.*?\)", "(text)");

相关内容

  • 没有找到相关文章

最新更新