正则表达式 - 后视

时间:2012-10-24 14:42:58

标签: regex lookbehind

我有这样的输入字符串:

left/1234567890

正则表达式:

(left(?<=/)[0-9]{10}?)

我想得到这样的结果:1234567890。 但它不起作用。

虽然,下一个输入字符串:

/1234567890

使用下一个正则表达式:

((?<=/)[0-9]{10}?)

按预期获得结果:1234567890。

1 个答案:

答案 0 :(得分:6)

这是因为您没有将left包含在您的lookbehind中:

((?<=left/)[0-9]{10}?)

在您的第一个示例中,您匹配left,然后正则表达式引擎的“指针”介于t/之间,因此您的lookbehind无法匹配,因为正则表达式引擎尚未通过斜线呢。