Pattern:正则表达式的编译表示形式.
Pattern p = Pattern.compile("a*b"); //将给定的正则表达式编译到模式中。
Matcher m = p.matcher("aaaaab"); //创建匹配给定输入与此模式的匹配器。
boolean b = m.matches(); //尝试将整个区域与模式匹配。
m.find(); /*尝试查找与该模式匹配的输入序列的下一个子序列。此方法从匹配器区域的开头开始,如果该方法的前一次
*调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。
*/
m.group();// 返回由以前匹配操作所匹配的输入子序列。
Matcher 与Pattern 的关系?Pattern p = Pattern.compile("a*b"); 根据API解释,这个方法的意义在于将Regex装载到Pattern(模式)中! 这里Pattern类似与模板的意思吧!个人理解!p.matcher("aaaaab");如何解释这个方法? 让模式和字符串匹配?得出什么结果呢? Matcher(匹配器!?) 我解释不通?p.matcher("aaaaab"); 和
p.matcher("aaaaaaaaaaaab"); 的返回值是一个对象么? 为什么?
boolean b = m.matches(); API的解释什么意思,看不明白! 这个区域?在那里!范围是什么? m.group();子序列是什么东西! 这里根据API的解释,Matcher 类似与Collection(容器) 或持有容器.容器中的元素是子序列!但是,问题出来了:子序列如何得到的?来源是哪里?m.find();m.find(int start)如果matcher是容器或持有容器,那么这个方法就类似与iterator.next();list.get(int index);好了先写这么多吧!剩下的什么时候想起什么时候问!谢谢各位了!
Pattern p = Pattern.compile("a*b"); //将给定的正则表达式编译到模式中。
Matcher m = p.matcher("aaaaab"); //创建匹配给定输入与此模式的匹配器。
boolean b = m.matches(); //尝试将整个区域与模式匹配。
m.find(); /*尝试查找与该模式匹配的输入序列的下一个子序列。此方法从匹配器区域的开头开始,如果该方法的前一次
*调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。
*/
m.group();// 返回由以前匹配操作所匹配的输入子序列。
Matcher 与Pattern 的关系?Pattern p = Pattern.compile("a*b"); 根据API解释,这个方法的意义在于将Regex装载到Pattern(模式)中! 这里Pattern类似与模板的意思吧!个人理解!p.matcher("aaaaab");如何解释这个方法? 让模式和字符串匹配?得出什么结果呢? Matcher(匹配器!?) 我解释不通?p.matcher("aaaaab"); 和
p.matcher("aaaaaaaaaaaab"); 的返回值是一个对象么? 为什么?
boolean b = m.matches(); API的解释什么意思,看不明白! 这个区域?在那里!范围是什么? m.group();子序列是什么东西! 这里根据API的解释,Matcher 类似与Collection(容器) 或持有容器.容器中的元素是子序列!但是,问题出来了:子序列如何得到的?来源是哪里?m.find();m.find(int start)如果matcher是容器或持有容器,那么这个方法就类似与iterator.next();list.get(int index);好了先写这么多吧!剩下的什么时候想起什么时候问!谢谢各位了!
解决方案 »
- 如何在滚动条的上方添加标签用于统计行的列数?急!
- python写入数据库的中文,用JAVA读就乱码
- 高手前辈都来讨论一下呀!软件制作另存为的问题!急!
- 课程快学完了 以后怎样提高自己?
- 有关DecimalFormat格式化字符串的问题???
- 如何设置按键盘上的回车就执行操作?
- 请问怎么将windows的区域编码比如2056,1033之类的转换成Java的Locale啊?
- 如何读写一个文本文件?给个实例。在线等待
- 如何读取形如.bmp,.gif,等格式的图片文件
- 哪里有bmp->jpeg的代码 for java? 非常简单的就行了
- 如何使用cmd连接到远程主机
- 如何设置一个Map的初始容量?默认的15太大了。
子序列如何得到的?来源是哪里?你不是调用了 Matcher m = p.matcher("aaaaab");
这是就根据 你定义的Regex 得到的group是当前的匹配
group就是正则表达式里面的()个数
所以你这里的 groupCount为0
Matcher m = p.matcher("aaaaab") Matcher 是一个匹配器,需要给定的模式,需要匹配的内容, 如
aaaaab,模式与内容都是由Pattern类提供的p.matcher("aaaaab"), p.matcher("aaaaab")这句话就是指定需要匹配的内容
boolean b = m.matches(); m.matches()就是进行匹配,结果为真, 返回true, 反之 false
m.find(); 是一个模糊查找,在需要匹配的内容中的某一序列(子序列)与模式匹配,匹配一次,返回一次
p.matcher("aaaaaaaaaaaab"); 的返回值是一个对象么?
例如!
Pattern p = Pattern.compile("a*b");
Matcher m = p.matches("aaabaaabaaaaabaabaaaabb");
int count = m.groupCount();
System.out.println("count: "+count);
/*(out:)
count: 6;
这个对不?
Pattern就是一个编译正则表达式的模式对象。
Matcher从意思上讲就是一个匹配器。
p.matcher就是根据特定的正则模式对象,针对某一字符串得到一个特定的匹配对象。
matches方法用来判断整个输入字符串是否匹配正则表达式模式。
find()像迭代器一样从前到后的遍历输入的字符串。find(i)从字符串的i作为搜索起点,进行搜索。
group是用括号划分的正则表达式,你可以根据0,1,2来引用某个组。
0代表全部的正则,1表示第一对括号,依次。。
1:“aaaabb”
2:(?<=aabaaaabaaaaaab)\\w*?(?=aaaaaabaaaaaab)
3:a{4}b{2}
...
(?=exp) 这个就是匹配exp前面的位置
\\w*?: \\w*是零个或者多个字符,后面的?是勉强型量词,该量词匹配满足模式所需的最小字符
组的数量是由Pattern.compile("a*b"); 里面的 表达式 决定的
正则表达式里有几个() 则数组group[i]!!这里的i就是上面的那个个数
如果没有() 则 没有group 关于正则的基础知识 给你推荐个
:http://hi.baidu.com/ismayday/blog/item/7f5b86942741d11dd21b708f.html
Matcher m 认为是个比较器对象
Matcher m=p. matcher("aaaab") 认为其中m是个依赖于p这个匹配模板的比较器对象,需要与模板比较的对象是“aaaab”
m.matches() 进行比较动作,并返回结果。
m.find() 也是进行匹配,返回结果与matches()方法不同
这样理解 可以不
http://blog.csdn.net/willy2/archive/2009/10/09/4645325.aspx