如:
String str = "test1234_test123_test12";
String regex = "(test)(\d*)";意思是找出test后面接数字跟字符串,并且返回两个子串 test 跟数字现在用
while(m.find()){
System.out.println(m.group(1)); //输出为test
System.out.println(m.group(2)); //输出为数字
}我想把上面的test换成别的字符串,数字换成符号,比如1234-1111,123-222,12-11,也就是说数字这个不是固定。请教下,该这么实现
String str = "test1234_test123_test12";
String regex = "(test)(\d*)";意思是找出test后面接数字跟字符串,并且返回两个子串 test 跟数字现在用
while(m.find()){
System.out.println(m.group(1)); //输出为test
System.out.println(m.group(2)); //输出为数字
}我想把上面的test换成别的字符串,数字换成符号,比如1234-1111,123-222,12-11,也就是说数字这个不是固定。请教下,该这么实现
楼主试试是不是想要这样的结果 String group(int i) {
String str = "test1234_test123_test12";
str = str.replaceAll("test", "test_");
System.out.println(str);
str = str.replaceAll("test", "abc");
str = str.replaceAll("\\d", "111");
System.out.println(str);
String[] s = str.split("_"); return s[i-1];
}
String str = "test1234_test123_test12";
String regex = "(test)(\d*)"; //两个子式
java中这个(\d*) 应该写成(\\d*)啊,需要转义'\'的while(m.find()){
System.out.println(m.group(1)); //输出为test ,为子式一匹配结果
System.out.println(m.group(2)); //输出为数字 ,为子式二匹配结果
}
我现在的想法是
我用"(test)(\\d*)" 找出了str的所有匹配像,会有test1234,test123,test12 3个匹配而每个匹配都会有test,跟后面的数字2个子匹配,我想把这两个子匹配替换掉,口齿不清,请谅解.
使用replaceAll(String regex, String replacement)可以将字符串中的符合regex正则表达式的字符替换成replacement。