我必须从
更改字符串中数字的格式XXX-YY-ZZZZ
更改为格式
XXX/ZZZZ/YY
其中X,Y和Z分别代表数字0-9
例如方法
changeFormat("Please quote your policy number: 112-39-8552.")
应返回:
"Please quote your policy number: 112/8552/39."
“-”可能出现在文本中的其他地方
答案 0 :(得分:3)
您可以在此正则表达式中使用replaceAll
来捕获(\d{3})-(\d{2})-(\d{4})
组:
str = str.replaceAll("\\b(\\d{3})-(\\d{2})-(\\d{4})\\b", "$1/$3/$2");
// G1 G2 G3 G1 G3 G2
正则表达式详细信息
\b
起始单词边界(\d{3})
组以匹配三个数字-
文字连字符(\d{2})
组以匹配两位数字-
文字连字符(\d{4})
组以匹配四个数字\b
结束词边界完整示例:
String str = "Please quote your policy number: 112-39-8552.";
str = str.replaceAll("\\b(\\d{3})-(\\d{2})-(\\d{4})\\b", "$1/$3/$2");
System.out.println(str);
//=>Please quote your policy number: 112/8552/39.