之前匹配但不包含在结果中

时间:2012-10-21 18:47:49

标签: php regex

My Regex:

(?<=(?i)start\s+date\s+)([0-9]{2}[\.]{1}[0-9]{2}[\.]{1}[0-9]{4})

我正在尝试匹配一个日期,该日期前面有“开始日期”字样,但只希望返回日期。

所以例如'开始日期01.01.2000'的匹配应该返回'01 .01.2000',我知道我很接近但我似乎无法将表达式的第一部分包含在结果中。任何帮助非常感谢

3 个答案:

答案 0 :(得分:2)

(?<=start\sdate)\s+([0-9]{2}[\.]{1}[0-9]{2}[\.]{1}[0-9]{4})

会奏效。我认为问题是用\ s +,可变长度看后面。大多数正则表达式引擎都没有实现可变长度的外观。

答案 1 :(得分:0)

试试这个:

(?<=start\sdate\s)([0-9]{2}\.[0-9]{2}\.[0-9]{4})

答案 2 :(得分:0)

如果您一直在寻找与start date ##.##.####匹配的字符串,则可以这样做:

start date ([0-9]{2}\.[0-9]{2}\.[0-9]{4})

然而在这种情况下,你也可以简单地做

substr($string, strrpos($string, "start date ") + 11, 10);