python 正则表达式 疑问
阿神
阿神 2017-04-17 11:23:05
[Python讨论组]
<td>数据:</td>
<td><img src="/123/abc.jpg" border="0" /></td>

(.+?) 可以匹配td之间的数据,比如上面的“数据:” 现在我想匹配上面的“数据:” 以及 “/123/abc.jpg”

我的理解是()得到想要的数据,然后 | 做类似的或操作 如果需要能匹配a模式或者b模式的,是不是应该这样 ((a)|(b)) 也就是这样: <td>((.+?)|<img src="(.+?)" border="0" />)</td>

但是经过测试达不到我想要的效果。 麻烦哪位大侠解答下,谢谢!

阿神
阿神

闭关修行中......

全部回复(2)
PHP中文网

<td>(?:<img src=")?(.+?)(?:" border="0" />)?</td>
这个不一定是最好的方法,不过针对你描述的情况,已经可以工作了

迷茫

(.+?)这一组在尝试匹配“数据:”时根据非贪婪规则,匹配到“数”就可以结束了,对于你想取得整个“数据:”的需求却没有做到。

正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。

例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。而如果使用非贪婪的数量词"ab*?",将找到"a"

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号