使用正则表达式替换不同的子字符串

时间:2011-03-06 04:33:51

标签: java regex

是否可以使用正则表达式将“I”替换为“you”而将“you”替换为“I”?

如果是这样,有人可以告诉我一个表达方式吗?我是否需要额外的匹配器代码,而不是单个正则表达式字符串?

(我正在拼命地学习正则表达式,但我在Google上找到的所有资源似乎都在教你,就像你已经知道它一样......)

我正在寻找这种格式的东西:

String s = "I love you";
String pattern = "???";
String replacement = "???";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(s);
String newString = m.replaceAll(replacement);
System.out.println(newString);

1 个答案:

答案 0 :(得分:2)

快速而肮脏,只是让你明白了。但是你可能需要改进它以使其更加健壮......

public class IdentityCrisis
{

  public static void main( String[] args )
  {
    String dilemma = "I know you want me to be something I don't want to be unless you prove me it is OK";

    System.out.println(
       dilemma.replaceAll("I", "y-o-u")
              .replaceAll("you", "I")
              .replaceAll("y-o-u", "you")
    );        
  }

}