我需要一个按顺序匹配字符q
和 的正则表达式r
,可能中间有另一个字符,而不会看到 实例的命中sqrtf
。然而sq.?r
、q.?rt
和q.?rtf
都是允许的。如何具体说明呢?
我得到的最接近的是
(s(?!qrtf))?q.?r
但()?
如果这个词在这里适用的话,它似乎并不“贪婪”。它成功地没有命中sqr
in sqrtf
,但它确实命中了qr
in ,sqrtf
因为它确实不包含s
,更不用说“s
不跟随qrtf
”了。
我需要一个按顺序匹配字符q
和 的正则表达式r
,可能中间有另一个字符,而不会看到 实例的命中sqrtf
。然而sq.?r
、q.?rt
和q.?rtf
都是允许的。如何具体说明呢?
我得到的最接近的是
(s(?!qrtf))?q.?r
但()?
如果这个词在这里适用的话,它似乎并不“贪婪”。它成功地没有命中sqr
in sqrtf
,但它确实命中了qr
in ,sqrtf
因为它确实不包含s
,更不用说“s
不跟随qrtf
”了。
您可以使用
请参阅正则表达式演示。
细节:
q(?<!sq(?=rtf))
-q
前面s
和后面都没有rtf
子字符串的字母.?
- 除换行符之外的任何可选字符r
-r
一封信。同一想法的另一个变体是
(?<!s(?=qrtf))q.?r
。