首页 > python 正则表达式 疑问

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>

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


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

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

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


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

【热门文章】
【热门文章】