Regex 使用正则表达式代码将HTML标记应用于文本,但如果在<;内则排除&燃气轮机;标签

Regex 使用正则表达式代码将HTML标记应用于文本,但如果在<;内则排除&燃气轮机;标签,regex,coldfusion,Regex,Coldfusion,可能重复: 我正在尝试编写一个正则表达式,它将遍历一些由我们的编辑器编写的文本,并应用一个 我希望这一变化是: 我要你给这个贴上标签 有没有注册专家可以帮我完成这件事?任何其他提示也将不胜感激 **更新** 不知道这是否有帮助,但这将在该段中找到唯一的答案: 这行吗 (?!(<acronym\W*>|\w))ITS(?!(<acronym\W*>|\w)) 由于不能使用lookbehinds,因此需要在开始时\W确保字符串不是另一个单词的一部分。不幸的是,如果匹配

可能重复:

我正在尝试编写一个正则表达式,它将遍历一些由我们的编辑器编写的文本,并应用一个


我希望这一变化是:

我要你给这个贴上标签


有没有注册专家可以帮我完成这件事?任何其他提示也将不胜感激

**更新** 不知道这是否有帮助,但这将在该段中找到唯一的答案:

这行吗

(?!(<acronym\W*>|\w))ITS(?!(<acronym\W*>|\w))

由于不能使用lookbehinds,因此需要在开始时\W确保字符串不是另一个单词的一部分。不幸的是,如果匹配,它将吞噬上一个角色。结尾的\w也确保它不是单词的一部分。

这是您的基本问题:regex不是解析器。这个问题已经被处理过很多次了,并且只有正则表达式没有通用的解决方案。你可以通过使用向前看、向后看和一些非常复杂的步法来假装它,但是你很快就达到了这样一个地步,你的表情变得非常复杂

我可以建议几种方法

如果您使用的是符合XML的文本,则可以使用xmlparse()解析文本,然后逐步遍历生成的结构,将正则表达式应用于每个节点的xmltext

或者,您可以尝试用占位符替换文本块中的每个标记,对生成的文本进行替换,然后恢复占位符


显然,这两种方法都不是完美的,但是经过一些调整,它们都可以帮助您实现目标。

对内联代码使用反勾号;新行上的4个空格将得到一个代码块。我输入了一些格式,但我不确定它现在是否准确地询问了您的问题,所以请看一看。你的意思是让你的测试链接真正起作用吗?如果是这样,您将需要完整的链接(
http://...
)不仅仅是你提供的相关产品。谢谢你的帮助。B.希望现在看起来更好:-)谢谢你的帮助Szupie。我在gskinner.com的RegExr应用程序中试过了,我用它来写这篇文章,但现在它没有突出显示任何内容。嗯,我搞砸了。另外,ColdFusion不支持lookbehinds,因此开始部分不好。我编辑了一个新模式。谢谢Ben的输入。实际上,我所要做的就是制定一条规则,上面写着“把所有不在一个容器中的ITS都包起来”。我不需要检查每一个标签等,以使事情更容易,虽然例子没有显示它,我们只希望这是适用于文本中的第一个实例,不是每个人,所以我希望这不是太复杂(他说!!)。干杯,JamesAvoiding已经包装好的实例可能最好使用我建议的第二种方法。我猜我误读了或者读到了你的文章,你也需要避免,这样你就不会断开链接(还有图片、链接脚本等等)。“这个问题已经被处理过很多次了”是一种轻描淡写的说法。“使用正则表达式解析HTML”问题大约每45分钟出现一次,因此:p@womp--这或多或少就是我不再看“Regex”标签的原因。同样的老问题:“为什么我不能做不可能的事情?”。
\\WITS(?!(</acronym\\W*>|\\w))