gpt4 book ai didi

regex - 正则表达式后顾之忧

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

我用

(?<!value=\")##(.*)##

匹配 ## MyString ## 之类的字符串,其格式不为:
<input type="text" value="##MyString##">

这适用于以上形式,但不适用于此形式:(它仍然匹配,不应匹配)
<input type="text" value="Here is my ##MyString## coming..">

我试过了:
(?<!value=\").*##(.*)##

没有运气。任何建议将不胜感激。

编辑:我正在使用PHP preg_match()函数

最佳答案

这不是完美的(这就是HTML解析器的用途),但是它将适用于绝大多数HTML文件:

(^|>)[^<>]*##[^#]*##[^<>]*(<|$)

这个想法很简单。您正在寻找标签之外的字符串。要在标签之外,最接近的前一个尖括号必须是闭合的(或根本没有括号),而最接近的后一个尖括号必须是开放的(或没有)。假定属性值中未使用尖括号。

如果您实际上关心属性名称为“值”,则可以匹配:
value\s*=\s*"([^\"]|\\\")*##[^#]*##([^\"]|\\\")*\"

...然后简单地取消匹配( !preg_match(...))。

关于regex - 正则表达式后顾之忧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211292/

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