我正在进行测试以查找并替换一个由3或4个大写字母组成的字符串,后跟一个带有相同字符串,连字符和相同数字的数字.在Perl中,我可以使用:
s/([A-Z]{3,4})([0-9])/$1-$2/g;
Run Code Online (Sandbox Code Playgroud)
我在Java中试过这个,硬编码如下字符串:
public class Test {
public static void main(String[] args) {
String test = "TEST1";
Pattern p = Pattern.compile("([A-Z]{3,4})([0-9])");
Matcher m = p.matcher(test);
if (m.find()) {
m.replaceAll(m.group(1) + "-" + m.group(2));
}
System.out.println(test);
}
}
Run Code Online (Sandbox Code Playgroud)
但没有找到匹配.我的Java语法是错误的还是正则表达式问题?
不需要使用模式/匹配器,你可以这样做:
test = test.replaceAll( "([A-Z]{3,4})([0-9])", "$1-$2");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
483 次 |
| 最近记录: |