用于交换单词的正则表达式

时间:2017-08-26 18:05:34

标签: java regex

我是一个正则表达新手,我无法弄清楚如何编写一个可以交换成对连续单词的正则表达式。例如,如果句子为"How are you today guys",则结果应为"are How today you guys"

1 个答案:

答案 0 :(得分:4)

您可以尝试使用正则表达式组,因此您的正则表达式可以是(\b\w+\b)\s+(\b\w+\b)所以使用replaceAll可以是:

String str = "How are you today guys";
String regex = "(\\b\\w+\\b)\\s+(\\b\\w+\\b)";
System.out.println(str.replaceAll(regex, "$2 $1"));

输出

are How today you guys

意思是:

  • (\b\w+\b)捕获第一个字
  • \s+后跟一个或多个空格
  • (\b\w+\b)获取第二个字

修改

或类似Wiktor Stribiżew提及您可以使用\\b(\\w+)\\s+(\\w+)\\b代替,这样可以正常使用。