首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP preg_match_all -这个正则表达式有什么问题?

PHP preg_match_all -这个正则表达式有什么问题?
EN

Stack Overflow用户
提问于 2019-04-21 20:39:10
回答 1查看 49关注 0票数 1

假设我在一个文本文件中有以下内容:

代码语言:javascript
复制
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()函数来返回文本文件中所有以:

a name="round_

。。中间有任意一系列字符和换行符,然后以:

colspan

所以结果应该是这3个匹配项:

代码语言:javascript
复制
a name="round_xx
Number 1
xxcolspan
代码语言:javascript
复制
a name="round_yy
Number 2
xxcolspan
代码语言:javascript
复制
a name="round_zz
Number 3
xxcolspan

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

代码语言:javascript
复制
$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,Windows 10。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-21 20:45:31

使正则表达式非贪婪:

代码语言:javascript
复制
preg_match_all('/a name="round_(.*?)colspan/s', $page_contents, $matches1);
//                              __^
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55782795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档