我想转换这个字符串
M,L,XL,XXL
到
size M,size L,size XL,size XXL
使用 replaceAll()方法。有可能吗?
答案 0 :(得分:5)
您可以使用正向前瞻来实现此目的。
String s = "M,L,XL,XXL";
s = s.replaceAll("(?=(\\w+))\\b", "size ");
System.out.println(s); // size M,size L,size XL,size XXL
请参阅Live demo
正则表达式:
(?= look ahead to see if there is:
( group and capture to \1:
\w+ word characters (a-z, A-Z, 0-9, _) (1 or more times)
) end of \1
) end of look-ahead
\b the boundary between a word char (\w) and not a word char
答案 1 :(得分:3)
在逗号上玩技巧,然后更快:
"M,L,XL,XXL".replaceAll("M", "size M").replaceAll(",",",size ")
答案 2 :(得分:2)
我建议如下:
"M,L,XL,XXL".replaceAll("((?:\\w+)(?:,|$))","size $1")
如http://fiddle.re/zrq88所示。 $1
是一个“反向引用”,指的是第一个“捕获组”。捕获组是括号中表达式匹配的任何文本,但有一些例外(例如,当左括号后跟?:
时)。