黑马程序员技术交流社区
标题:
正则表达式匹配问题
[打印本页]
作者:
臧盼
时间:
2012-12-17 18:11
标题:
正则表达式匹配问题
谁能帮我分析下find()方法,group()方法,group(int i)方法的用处。
代码片段如下:
Pattern p = Pattern.compile("(.{3,10}?)([0-9])");
String s = "aaaa5bbbb68";
Matcher m = p.matcher(s);
while(m.find())
{
p(m.group(1));
}
输出为:
aaaa
bbbb
结果为什么是这样呢?m.group(1)不是就和(.{3,10}?)匹配吗,
打印结果不应该是下面的结果吗?
aaa
a5b
bbb
作者:
张学永
时间:
2012-12-17 18:26
Pattern p = Pattern.compile("(.{3,10}?)([0-9])");
String s = "aaaa5bbbb68";
Matcher m = p.matcher(s);
while(m.find())//这里是拿着你的正则表达式"(.{3,10}?)([0-9])"去匹配的,符合的结果有"aaaa5"和“bbbb6”
{
p(m.group(1));//而这里你是获取正则表达式里面的第一组序列。也就是(.{3,10}?)这部分内容,当然就是“aaaa”和“bbbb”了,注意你这个表达式
//表达是任意字符重复出现3到10次之间的意思,不是只有三次,条件满足就会匹配下去,直接条件不满足。
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2