我有这个HTML:
"This is simple html text <span class='simple'>simple simple text text</span> text"
我只需要匹配任何HTML标记之外的单词。我的意思是,如果我想匹配“简单”和“文本”,则只能从“这是简单的html文本”和最后一部分“文本”中获得结果-
结果将是“简单” 1匹配,“文本” 2火柴。有人可以帮我吗?我正在使用jQuery。
var pattern = new RegExp("(\\b" + value + "\\b)", 'gi');
if (pattern.test(text)) {
text = text.replace(pattern, "<span class='notranslate'>$1</span>");
}
value
是我要匹配的单词(在这种情况下为“简单”)text
是 "This is simple html text <span class='simple'>simple simple text text</span> text"
我需要用来包装所有选定的单词(在此示例中为“简单”)<span>
。但是我只想包装 任何 HTML标记之外的单词。这个例子的结果应该是
This is <span class='notranslate'>simple</span> html <span class='notranslate'>text</span> <span class='simple'>simple simple text text</span> <span class='notranslate'>text</span>
我不想替换任何文字
<span class='simple'>simple simple text text</span>
它应与更换前的相同。
好的,尝试使用此正则表达式:
(text|simple)(?![^<]*>|[^<>]*</)
分解:
( # Open capture group
text # Match 'text'
| # Or
simple # Match 'simple'
) # End capture group
(?! # Negative lookahead start (will cause match to fail if contents match)
[^<]* # Any number of non-'<' characters
> # A > character
| # Or
[^<>]* # Any number of non-'<' and non-'>' characters
</ # The characters < and /
) # End negative lookahead.
负前瞻会阻止匹配,如果text
还是simple
是HTML标记之间。
问题内容: 我在html页面上制作了preg_replace。我的模式旨在为html中的某些单词添加周围的标记。但是,有时我的正则表达式会修改html标签。例如,当我尝试替换此文本时: 这样读,我的正则表达式也锚标记的alt属性取代亚萨尔。当前我正在使用的外观如下: 如何制作正则表达式,使其与html标记内的任何内容都不匹配? 问题答案: 您可以为此使用断言,因为您只需要确保搜索到的单词出现在或之
问题内容: 我有这个HTML输入: 我想使用正则表达式删除HTML标记,以便输出为: 谁能建议使用正则表达式执行此操作? 问题答案: 您可以使用称为Jericho Html解析器的HTML解析器。 您可以从这里下载-http://jericho.htmlparser.net/docs/index.html Jericho HTML Parser是一个Java库,允许对HTML文档的各个部分(包括服
问题内容: 我一直在尝试做一个正则表达式来匹配和替换HTML一部分上关键字的出现: 我想匹配和 但是并且不应该匹配 我只对第一行的匹配(和替换)感兴趣。 我想要此操作的原因是将其替换为,但仅当它尚未位于标记中时才可以。 任何帮助都感激不尽! 问题答案: 我设法通过以下方式完成了我想做的事情( 不使用Regex ): 解析字符串的每个字符 删除所有标签(将它们复制到临时数组并在字符串上保留占位符)
问题内容: 我有这个字符串: 现在,我想在每个数字之前添加String num:。 因此结果必须是: 这也必须工作: 用于搜索数字的正则表达式是:[0-9]+ 但是我想用num:+ [匹配的子字符串]替换匹配的子字符串。 我现在写了一个带有数字的示例,但另一个示例可以是:在每个电子邮件地址之前添加 ·Email found·: 问题答案: 利用分组。您可以使用括号(并)定义组,并通过组索引$n在哪
我正在寻找一个正则表达式,它必须在不同类型的HTML标记之间提取文本。 对于前任: <代码> <代码> <代码> 我找到了这个特殊的片段
问题内容: 在2个标签之间选择所有文本的最佳方法是什么-例如:页面上所有“ pre”标签之间的文本。 问题答案: 您可以使用,(用所需的任何文本替换pre)并提取第一组(对于更具体的说明,请指定一种语言),但这只是假设您拥有非常简单且有效的HTML。 正如其他评论者所建议的那样,如果您要执行复杂的操作,请使用HTML解析器。