我知道使用正则表达式来解析html的做法不被接受,但这是我要首先尝试的解决方案。
我正在尝试匹配
what a great sentence this is
以及这些单词之间的任何字符或空格
在以下字符串中:
<p>
what is going on with you?
</p>
<p>
what a great
</p>
<p>
sentence this is
</p>
<p>
How is your family?
</p>
我使用的正则表达式是:
what.*a.*great.*sentence.*this.*?is
我知道。*吗?在'is'阻止我的正则表达式匹配最后一个p标签中的'How is'之前。但是我不知道该从第一个p标签的“发生什么”开始阻止比赛开始
我正在查看https://regex101.com/r/kZWYR7/1的输出,以确认其未按预期工作。
请帮忙,我觉得我在正则表达式中缺少一个重要的教训,这使我无法弄清这一点。
预期匹配为:
what a great
</p>
<p>
sentence this is
编辑:澄清我的问题及其与重复项有何不同
答案 0 :(得分:0)
要将纯文本与正则表达式中字符串的一部分匹配,只需使用您要查找的文本。匹配what a great sentence this is
应该有效,不需要.*
。之后的.*
允许字符串的其余部分为is
之前的任何内容。
编辑:我刚读完您的评论,发现单词之间存在空格的可能性。在这种情况下,@WiktorStribiżew是正确的,在每个单词之间使用\W*
来容纳单词之间任意数量的非单词字符。
(再次感谢@WiktorStribiżew)
正如@Jonathan Buelow指出的那样,如果它只是单词之间的空白,则可以使用\s+
或\s*
代替:
what\s+a\s+great\s+sentence\s+this\s+is