2015-04-06 44 views
1

我正在使用preg_match_all()来匹配一些字符串。如何在正则表达式中包含第一组之后的文字?

这是我的代码

preg_match_all('@([a-zA-Z0-9,\(\)\-\s\.\#:]*)Date From: [0-9]{2}/[0-9]{2}/[0-9]{4}([, \s]*[0-9]{2}/[0-9]{2}/[0-9]{4})*\s(Division Type: [A-Z ]*)*@m', $string, $match); 

这是输出

https://regex101.com/r/hE3iO2/1

现在,我想一个/添加到第一组包括捕获组中的文字/和这发生了

from this

([a-zA-Z0-9,\(\)\-\s\.\#:]*) 

这个

([a-zA-Z0-9,\(\)\-\s\.\#:/]*) 

https://regex101.com/r/wM1rW7/1

我怎样才能防止这种现象将/到组时发生的呢?

回答

0

让您的正则非贪婪:

([a-zA-Z0-9,()\s.#:/-]*?)Date From: [0-9]{2}/[0-9]{2}/[0-9]{4}([, \s]*[0-9]{2}/[0-9]{2}/[0-9]{4})*\s(Division Type: [A-Z ]*)* 

RegEx Demo

相关问题