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



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

您可以尝试使用正则表达式组,因此可以使用替换来(bw+b)s+(bw+b)正则表达式:

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

意义:

  • (bw+b)捕获第一个单词
  • s+后跟一个空格或更多空格
  • (bw+b)捕获第二个单词

编辑

或者像Wiktor Stribiżew提到的那样,你可以改用\b(\w+)\s+(\w+)\b,这工作很好。

最新更新