PHP preg_match_all-此正则表达式有什么问题?

假设我的文本文件中包含以下内容:


xxa name="round_xx

Number 1

xxcolspanxx

DOG


yya name="round_yy

Number 2

xxcolspanxx

DOG


zza name="round_zz

Number 3

xxcolspanxx

DOG

我想使用PHP的preg_match_all()函数返回以以下内容开头的文本文件中的所有序列:


一个名字=“ round_


..之间有任何字符序列和换行符,然后以:结尾


科尔斯潘


因此结果应为以下3个匹配项:


a name="round_xx

Number 1

xxcolspan

a name="round_yy

Number 2

xxcolspan

a name="round_zz

Number 3

xxcolspan

这是我的代码,失败了。它将文本文件的内容读取到$ page_contents中,但是preg_match_all产生完全不正确的匹配项:


$page_contents = file_get_contents('./path/to/textfile.txt');

$matches1 = array();

preg_match_all('/a name="round_(.*)colspan/s', $page_contents, $matches1);

我正在使用PHP 7.1.28,Windows10。谢谢。


阿晨1998
浏览 141回答 1
1回答

至尊宝的传说

使正则表达式不贪心:preg_match_all('/a name="round_(.*?)colspan/s', $page_contents, $matches1);//                              __^
打开App,查看更多内容
随时随地看视频慕课网APP