可选字段的正则表达式写法

ZOU_SEAFARER 2014-02-19 10:59:26

String regEx = "<tr><td>(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})<script.+?[^>]>:(\\d{1,5})</td><td>(.+?)</td><td>(.+?)</td><td>(.+?)</td></tr>";

<tr><td>41.65.38.227<script type="text/javascript">document.write(":"+k+q+v+t)</script>:3128</td><td>anonymous </td><td>Feb-17, 06:48</td><td>Egypt</td></tr><tr><td>58.247.178.239<script type="text/javascript">document.write(":"+t+o+t+q)</script>:8081</td><td>anonymous </td><td>Feb-17, 10:38</td><td>China</td></tr>


注意红色源代码地方,可能有时候没有。不知道表达式怎么改。尝试几次没有成功。来请教请教
...全文
189 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony4geek 2014-02-19
  • 打赏
  • 举报
回复
	String x = "<tr><td>(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})<script.+?[^>]>:(\\d{1,5})</td><td>(.+?)</td><td>(.+?)</td>(<td>(.+?)</td>|)</tr>";
		Pattern pattern = Pattern.compile(x);
		String s = "<tr><td>41.65.38.227<script type=\"text/javascript\">document.write(\":\"+k+q+v+t)</script>:3128</td><td>anonymous </td><td>Feb-17, 06:48</td><td>Egypt</td></tr><tr><td>58.247.178.239<script type=\"text/javascript\">document.write(\":\"+t+o+t+q)</script>:8081</td><td>anonymous </td><td>Feb-17, 10:38</td></tr>";
		Matcher matcher = pattern.matcher(s);
		while (matcher.find()){
			System.out.println(matcher.group());
		}

62,610

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧