需要正则表达式来匹配两个单词,因为它们之间可能有任意数量的空格或其他字符

Posted

技术标签:

【中文标题】需要正则表达式来匹配两个单词,因为它们之间可能有任意数量的空格或其他字符【英文标题】:Need regex to match two words given there could be any amount of white space or other characters between them 【发布时间】:2019-01-13 14:33:13 【问题描述】:

假设我想匹配短语“Johnny Appleseed”,我们得到以下字符串:

<p>Johnny random blah stuff</p>
<p>more random stuff Appleseed blah blue bleh</p>

我希望能够匹配 Johnny 和 Appleseed 以便将这些单词包装在标签中,我该怎么做?

预期输出:

<p><span>Johnny</span> random blah stuff</p>
<p>more random stuff <span>Appleseed</span> blah blue bleh</p>

感谢所有建议!

注意:基本上我想要的是此页面自动使用示例字符串中的单词 Johnny 和 Appleseed 执行的操作(它使 Johhnny 和 Appleseed 的颜色与其他文本不同)

【问题讨论】:

正则表达式用于在字符串中查找模式。查看您的示例,您只想连接三个字符串&lt;div&gt;,原始,&lt;/div&gt;。如果不是这样,请重写问题以提供更好的示例。 您可能想reconsider using regex on html,特别是如果您不知道您的代码可以具有什么结构。简而言之:regular 表达式不适合像您这样的 irregular 问题。虽然您在问题中描述的问题似乎有点容易处理,但我觉得您的实际问题(或将要)复杂得多,因此我的承诺是:考虑另一种解决方案。我们很乐意提供帮助,但我们可能需要更多信息。 我明白了。我确实总是看到“正则表达式对 html 不利”,但我从未见过有人在这样的线程上发布非正则表达式解决方案。对于类似正则表达式的场景,很难想出非正则表达式解决方案。不过,我肯定会对非正则表达式解决方案敞开心扉 将问题编辑得更具体 您的示例的预期输出是什么?你想把每个单词都换行吗? 【参考方案1】:

决定使用 Jsoup 来解析我的 HTML,而不是使用正则表达式。感谢您的时间!

【讨论】:

以上是关于需要正则表达式来匹配两个单词,因为它们之间可能有任意数量的空格或其他字符的主要内容,如果未能解决你的问题,请参考以下文章

如何正则表达式匹配()在单词的末尾

正则表达式只允许单词之间有一个空格

正则表达式:匹配空格之间的单词

C#:正则表达式不匹配一组单词

用正则表达式匹配连字符之间的文本

正则表达式匹配两个单词之一