Java正则表达式进行多组多行匹配
来源:互联网 发布:mac花屏两秒自动恢复 编辑:程序博客网 时间:2024/06/06 00:52
public static void main(String[] args) { String str = "<div title=aaa>bbbb</div>ccc<div title=aaa>bbbb</div>ccc<div title=aaa>bbbb</div>ccc<div title=aaa>bbbb</div>ccc"; String pat = "<div title=(.*?)>(.*?)</div>.*?"; Pattern p = Pattern.compile(pat); Matcher m = p.matcher(str); while (m.find()) { for (int i = 0; i < m.groupCount() + 1; i++) { System.out.println(m.group(i)); } System.out.println("===================="); } }
输入的结果是:
<div title=aaa>bbbb</div>
aaa
bbbb
====================
<div title=aaa>bbbb</div>
aaa
bbbb
====================
<div title=aaa>bbbb</div>
aaa
bbbb
====================
<div title=aaa>bbbb</div>
aaa
bbbb
====================
根据我的软件测试,输出的结果是没有错的:
但是这里有一个需要注意的地方,仔细看代码里的for循环
for (int i = 0; i < m.groupCount() + 1; i++)
没错,这里要+1。
因为groupCount方法的API说明如下:
- 返回此匹配器模式中的捕获组数。
- 根据惯例,零组表示整个模式。它不包括在此计数中。
- 任何小于等于此方法返回值的非负整数保证是此匹配器的有效组索引。
所以这里要+1,而且group(0)表示的是匹配到的整个文本,不要忘记了。
PS:这里在while循环执行完之前,好像是没法知道匹配了多少行的,如果有的话,请留言告诉我,谢谢。
0 0
- Java正则表达式进行多组多行匹配
- preg_match进行正则表达式匹配
- 使用正则表达式进行匹配
- 用正则表达式进行匹配
- 使用正则表达式进行匹配
- java:正则表达式匹配
- JAVA正则表达式匹配
- java 正则表达式 匹配
- Java正则表达式匹配
- Java正则表达式匹配
- Java正则表达式匹配
- java正则表达式匹配
- java 正则表达式 匹配 dd
- java匹配IP正则表达式
- Java 正则表达式 字符串匹配
- Java: 正则表达式匹配文件名
- java 正则表达式匹配中文
- JAVA使用正则表达式匹配
- Android网络请求与JSON解析和数据抓取小实例
- php中::和->,self和this的区别
- 单例模式以及通过反射和序列化破解单例模式
- ios 自定义键盘的按键音效和震动效果
- nginx 模块架构 -- 配置文件的读取和配置过程
- Java正则表达式进行多组多行匹配
- Linux进程通信——管道
- Linux修改服务器时间
- string与string.h区别
- MyEclipse项目,使用自带Git插件,添加Git支持(SSH方式)
- SecureCRT鼠标左键划选后变成回车问题解决
- Spring, DIP, dependency inversin, dependency injection
- 在线安装eclipse中html/jsp/xml editor插件(非常可靠)
- xrdp 访问 ubuntu 12.10 只看到背景,看不到菜单栏的解决办法