gpt4 book ai didi

java - 用正则表达式解析 HTML?

转载 作者:行者123 更新时间:2023-12-01 04:25:04 25 4
gpt4 key购买 nike

我一直在尝试使用正则表达式收集信息:

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>

如您所见,它显示了我要查找的单词之前和之后的开始和结束“小”标签。我需要的只是这个词,没有它周围的“小”标签。

最佳答案

USING REGEX TO PARSE HTML IS BAD.

再次,using RegEx to parse HTML is bad.

话虽如此......在回答您的问题时,问题是您如何使用正则表达式。我唯一要更改的代码是 Pattern.compile() 中的内容方法。 way you're currently doing it ,(点击Java按钮查看结果),只有有<small>时才会匹配,然后 5 个字符,然后 </small> 。该匹配包括开始和结束标记。

如果你想要的是只匹配中间部分,那么你可以尝试 using RegEx lookaroundThe way I did it is: (?<=<small>).*(?=</small>) 。分成部分:

.* - 任意数量的字符。

.*(?=</small>) - </small> 后面跟随的任意数量的字符.

(?<=<small>).*(?=</small>) - <small> 前面的任意数量的字符然后是 </small> .

如果您不想让它匹配任何字符,则替换 .*与您想要查找的任何内容(例如, .....{5}. 将匹配 5 个字符)。

关于java - 用正则表达式解析 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18582331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com