我需要替换字符串中的两个或多个变量。我能够在一个表达式中一次替换一个,但是如何在一次中替换两个或更多。
例如;狗说喵喵需要换成猫说道。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches
{
private static String REGEX = "dog";
private static String INPUT = "The dog says meow. ";
private static String REPLACE = "cat";
public static void main(String[] args) {
Pattern p = Pattern.compile(REGEX);
// get a matcher object
Matcher m = p.matcher(INPUT);
INPUT = m.replaceAll(REPLACE);
System.out.println(INPUT);
}
}
上面的代码将表达式改为“猫说喵”,但我需要“猫说鞠躬”。
答案 0 :(得分:0)
使用第一个replaceAll
函数添加另一个replace或replaceAll函数,如下所示。
private static String REGEX = "dog";
private static String INPUT = "The dog says meow. ";
private static String REPLACE = "cat";
public static void main(String[] args) {
Pattern p = Pattern.compile(REGEX);
// get a matcher object
Matcher m = p.matcher(INPUT);
INPUT = m.replaceAll(REPLACE).replace("meow", "bow");
System.out.println(INPUT);
输出:
The cat says bow.
OR
INPUT = m.replaceAll(REPLACE).replaceAll("me(?=ow\\b)", "b");
me(?=ow\\b)
仅在子字符串me
后跟ow
加上字边界时匹配。然后,replaceAll
函数会在第一个me
函数调用的结果字符串中用b
替换字符串replaceAll
。