我是正则表达式新手,我无法弄清楚如何编写一个可以交换连续单词对的正则表达式。例如,如果句子是"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
,这工作很好。