Java正则表达式用法

时间:2014-12-24 11:18:59

标签: java regex

我需要替换字符串中的两个或多个变量。我能够在一个表达式中一次替换一个,但是如何在一次中替换两个或更多。

例如

;狗说喵喵需要换成猫说道。

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);
}
}

上面的代码将表达式改为“猫说喵”,但我需要“猫说鞠躬”。

1 个答案:

答案 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