2

当这些字符没有立即遵循先行断言时,是否可以使用先行来确定一个或多个字符是否存在/不存在?

例如
给定类似于此的正则表达式:

([abc])([def])([ghi])

例如,如果第一组中有“a”,我是否可以只允许第三组中的“i”作为匹配项?

4

3 回答 3

2

您可以使用后向断言(除非您的目标是正则表达式引擎不支持的 JavaScript):

([abc])([def])([gh]|(?<=a.)i)
于 2013-01-11T14:40:45.460 回答
0

如果要使用 OR 操作,请使用| Like this

(asd)|(zxc)|(qwe)
于 2013-01-11T14:33:34.180 回答
0

您可以使用条件模式。

试试这个 :

/((a)|(b|c))([def])(?(2)i|[gh])/

(用 PCRE 测试)

于 2013-01-11T14:36:16.140 回答