Pattern : "I (?<a>[\w\W]*)(want to match (?<b>longest))? available" or "I ((?<a>[\w\W]*)|(want to match (?<b>longest))?)+ available"
字符串:“我想匹配最长可用”比赛结束后,我们有:a=“要匹配最长”,B=""但我想:a="”,B=“最长”
j8ag8udp1#
默认情况下,RegEx是“贪婪”的,这意味着它将尽可能地匹配 *。要使重复延迟,请添加?。
?
I <?a:[\w\W]*?>(want to match <?b:longest>)? available ^
这将延迟匹配0+ [\w\W]个字符,换句话说:直到表达式可以继续匹配(一旦它看到want to match longest available等)。
[\w\W]
want to match longest available
示例:greedy与lazy(单击“regex调试器”以查看这些重复操作的操作方式)。
同样的想法也适用于你的另一个表情,然而贪婪是一个不同位置的问题:
I ((?<a>[\w\W]*)|(want to match (?<b>longest))?)+? available ^
1条答案
按热度按时间j8ag8udp1#
默认情况下,RegEx是“贪婪”的,这意味着它将尽可能地匹配 *。要使重复延迟,请添加
?
。这将延迟匹配0+
[\w\W]
个字符,换句话说:直到表达式可以继续匹配(一旦它看到want to match longest available
等)。示例:greedy与lazy(单击“regex调试器”以查看这些重复操作的操作方式)。
同样的想法也适用于你的另一个表情,然而贪婪是一个不同位置的问题: