[英]Parsing HTML with Regular Expressions?
我一直在尝试使用正则表达式收集信息:
Pattern hp = Pattern.compile("<small>.....</small>");
Matcher mp = hp.matcher(code);
while (mp.find()) {
String grupoHORARIO = mp.group();
System.out.println(grupoHORARIO); }
当我运行程序时,没有显示给我看:
RESULT1
RESULT2
RESULT3
它显示了这一点:
<small>RESULT1</small>
<small>RESULT2</small>
如您所见,它显示了我要查找的单词前后的“小”标签的开头和结尾。 我需要的只是这个词,周围没有“小”标签。
话虽这么说...为了回答您的问题,问题在于您如何使用正则表达式。 您要更改的唯一代码是Pattern.compile()
方法内部的代码。 当前的操作方式 (单击Java按钮以查看结果),只有在<small>
,5个字符,然后</small>
,您才匹配。 此匹配项包括开始和结束标签。
如果您只想匹配中间部分,则可以尝试使用RegEx lookaround 。 我这样做的方式是: (?<=<small>).*(?=</small>)
。 分为部分:
.*
-任意数量的字符。
.*(?=</small>)
-任意数量的字符后跟</small>
。
(?<=<small>).*(?=</small>)
-任意数量的字符,其后跟<small>
和</small>
。
如果您不想让它与任何字符匹配,则用您要查找的内容替换.*
(例如, .....
或{5}.
将匹配5个字符)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.