我正在尝试编写一个匹配条件的正则表达式,除非它出现在特定文本时。我使用的签名如下:
(?:(?:\%3D)|(?:=))[^\n]*(?:(?:\%27)|(?:\')|(?:\-\-)|(?:\%3B)|(?:;))
首先查找=符号或其十六进制等效值(%3D)。然后它允许零个或多个非换行符,然后检查单引号,双破折号或分号。
我希望这个签名能够匹配所有内容,除非我得到一个特定的TEXT,例如:
=TEXT;
我怎样才能得到它?
答案 0 :(得分:0)
您可以使用
(?:%3D|=)(?!TEXT(?:%27|'|--|%3B|;)).*?(?:%27|'|--|%3B|;)
请参阅regex demo
<强>详情
(?:%3D|=)
- %3D
或=
(?!TEXT(?:%27|'|--|%3B|;))
- TEXT
,%27
,'
,--
或{{1}后面不能%3B
}} ;
- 除了换行符之外的任何0 +字符,尽可能少.*?
- (?:%27|'|--|%3B|;)
,%27
,'
,--
或%3B