Java 正则表达式 获取双引号内的数字
获取双引号内的数字要求:
获取字符串双引号中的数字
String str2 = "curStaff[].staffId(\"12\").staffName";
获取数字 12
在正则表达式查找数字中使用了替换的方式进行处理,这边使用另外一种方式,直接匹配的方式进行获取
代码:
public static void main(String[] args) {
String str2 = "curStaff[33].staffId(\"12\").staffName";
getIncludeNums1(str2);
getIncludeNums2(str2);
}
// 表达式 .* 就是单个字符匹配任意次,即贪婪匹配。
// 表达式 .*? 是满足条件的情况只匹配一次,即最小匹配
private static String getIncludeNums1(String str){
String regExp= "(\").*?(\")";
Pattern pattern = Pattern.compile(regExp);
Matcher matcher = pattern.matcher(str);
if(matcher.find()) {
String group = matcher.group();
String result = StringUtils.substring(group, 1, group.length()-1);
System.out.println(str +" getIncludeNums1 " + result);
return result;
}
return "";
}
private static String getIncludeNums2(String str){
String regExp= "(\\[).*?(\\])";
Pattern pattern = Pattern.compile(regExp);
Matcher matcher = pattern.matcher(str);
if(matcher.find()) {
String group = matcher.group();
String result = StringUtils.substring(group, 1, group.length()-1);
System.out.println(str +" getIncludeNums2 " + result);
return result;
}
return "";
}
结果:
curStaff[33].staffId("12").staffName getIncludeNums1 12
curStaff[33].staffId("12").staffName getIncludeNums2 33
总结:
这个例子主要是正则表达式语法如何写。regExp= "(\").*?(\")" 双引号需要各自用括号,同理要替换其它字符就可以获取到其它相应的内容了。有个麻烦的因为是在字符里面是匹配的时候会把对应的符号也匹配到,要再进行一个处理,把前后的内容进行处理