Regex 正则表达式反向惰性量词

Regex 正则表达式反向惰性量词,regex,Regex,假设我有这根绳子 X,,,X,,,X,,c,,X,,,X 我想捕获与X.*c.*X匹配的最小字符串,即X,,,X,,X,,,c,,,X,,X 正则表达式X.*c.*X将捕获X、、、X、、X、、c、、X、、X 通过使第二个量词惰性X.*c.*X我得到X、、X、、c、、X、、X 但是让第一个量词变懒并没有什么区别 我怎样才能告诉第一个量词也是懒惰的,但是从另一个方向?明确禁止重复起始子字符串。 在示例中: X[^X]*c.*X-->XaaaXaaaXaacXaaaX multicharachter

假设我有这根绳子

X,,,X,,,X,,c,,X,,,X
我想捕获与
X.*c.*X
匹配的最小字符串,即X,,,X,,X,,,c,,,X,,X

正则表达式
X.*c.*X
将捕获X、、、X、、X、、c、、X、、X

通过使第二个量词惰性
X.*c.*X
我得到X、、X、、c、、X、、X

但是让第一个量词变懒并没有什么区别

我怎样才能告诉第一个量词也是懒惰的,但是从另一个方向?

明确禁止重复起始子字符串。 在示例中:

X[^X]*c.*X
-->XaaaXaaaXaacXaaaX

multicharachter版本: (使用负面环视)

在字符串中查找最小值
XY.*c.*XY
XY、、、XY、、XY、、c、、XY、、XY


这是正确的。没有“其他方向”-正则表达式总是返回最早(最左边)的成功匹配。因此,如果XAAAXAAAXAAAX和XAAAXAAAXAAAX都匹配,您将始终获得第一个。返回第二个字符的唯一方法是确保第一个字符不成功。求反的字符类对多字符值无效。是的,已经存在这样的问题了。你的是个傻瓜。