如何使用regexjava反转字符串中的最后一个和第一个单词
我有这根绳子 “我的电话号码超出范围。我是马克” 我想把它改成 “Mark电话号码超出范围。这是我的” 如何在JAVA中使用正则表达式 到目前为止我都试过了如何使用regexjava反转字符串中的最后一个和第一个单词,java,regex,string,Java,Regex,String,我有这根绳子 “我的电话号码超出范围。我是马克” 我想把它改成 “Mark电话号码超出范围。这是我的” 如何在JAVA中使用正则表达式 到目前为止我都试过了 public static void main(String args[]){ String str = "My Phone number is out of range. This is Mark"; str=str.replaceAll("^(\\w+)(.*)(\\w+)$","$3$2$1"); Syste
public static void main(String args[]){
String str = "My Phone number is out of range. This is Mark";
str=str.replaceAll("^(\\w+)(.*)(\\w+)$","$3$2$1");
System.out.print(str);
}
输出:
ky Phone number is out of range. This is MarMy
分开很容易
split() the string based on \\s+ and put it in String array arr
Do temp = arr[0] ;
arr[0] = arr[arr.length-1];
arr[arr.length-1] = temp;
正如@TheLostMind所建议的那样,拆分将更容易、更干净地使用,但如果您想使用正则表达式,那么就来吧 您正在使用\w+匹配结尾处的单词,但它只匹配结尾处的一个字符。为了匹配整个单词,你需要匹配最后一个单词前的空格。您可以使用下面的表达式来实现这一点
str=str.replaceAll("^(\\w+)(.*)([ ]+)(\\w+)$","$4$3$2$3$1");
这里$3是匹配的空格字符
希望这有帮助