我是一个正则表达新手,我无法弄清楚如何编写一个可以交换成对连续单词的正则表达式。例如,如果句子为"How are you today guys"
,则结果应为"are How today you guys"
答案 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
代替,这样可以正常使用。