【发布时间】:2016-07-27 09:54:19
【问题描述】:
给定以下文本:
我的名字是 foo。
我叫巴。
目标是返回包含或不包含特定子字符串的每一行,以下正则和负正则表达式模式均可用于返回相同的结果:
正向前瞻:^(?=.*bar).*$ 返回My name is bar.
负前瞻:^((?!foo).)*$ 返回My name is bar.
但是,为什么负前瞻需要嵌套在多组括号中,限定符 . 和量词 * 用括号分隔,而在正前瞻中,它们可以相邻 .*?
【问题讨论】:
标签: regex lookahead negative-lookahead