正则表达式反向懒惰量词

时间:2017-04-24 08:47:18

标签: regex

说我有这个字符串

X,,,X,,,X,,c,,X,,,X

我希望捕捉匹配X.*c.*X的最小字符串,即X ,,,,, X ,, c ,, X ,,, X

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

通过使第二个量词懒惰X.*c.*?X我得到 X ,,, X ,,, X ,, c ,, X ,,, X

但是让第一个量词变得懒惰没有区别X.*?c.*?X - >的 X ,,, X ,,, X ,, C 13 X ,,, X

我如何判断第一个量词也是懒惰的,但是从另一个方向来说呢?

1 个答案:

答案 0 :(得分:2)

明确禁止重复起始子字符串。

在示例中:

X[^X]*c.*?X - > XaaaXaaa的 XaacX aaaX

multicharachter版本:

(使用负面环视)

在字符串中查找最小XY.*c.*XYXY,,,XY,,,XY,,c,,XY,,,XY

XY((?!XY).)*c.*?XY - > XY XY ,,, ,,,的 XY ,, C 13 XY ,,, XY