【发布时间】:2017-04-19 06:37:27
【问题描述】:
什么一般的(即不包括任何特定于整个模式的文字)PCRE 子表达式放在两个子表达式之间,每个子表达式都由文字字符组成,会导致模式匹配最少数量的字符?
请注意,此问题不满足:
this related question 的任何现有答案。
我在本网站上找到的其他相关问题的任何现有答案,包括可能已经有你答案的问题提出的所有问题。
.*?(懒惰)。这(如here 所述)不一定匹配最少的字符数。[^x]*其中 x 是从模式中其他地方复制的文字字符。要求是通用的表达式,即不包括任何特定于整个模式的文字。为避免引出此类错误答案,此问题特意不提供失败模式的示例。
【问题讨论】:
-
嗯,一个很好的例子是您的链接之一:
abcabk,其中a.+?k匹配整个字符串,而不仅仅是最后 3 个字符。 (解决方案确实是将双字符复制到 Not-set 中——这是您要避免的。) -
你到底想做什么?
-
这个网站是针对您所面临的实际问题的具体问题。您的问题过于模糊和范围广泛。投票结束,直到它变得更加具体,带有实际的问题陈述和具体问题。
-
我没有阻止任何事情。搁置一个问题需要 5 票。我有礼貌地向你解释了我为什么要这样做。这是一个更好的主意:为什么不编辑您的问题以使其更具体,以便我可以删除我的近距离投票?
-
这个问题没什么含糊的。他想知道哪个
whatever会给他在leftwhateverright的任何地方的最短匹配,而不是left.*?right给出的最左边的最短匹配,并附加要求解决方案不应该要求whatever在left或right发生变化,因此正则表达式可以用作模板。
标签: pcre