Php 正则表达式,不使用“获取img”;“诺里斯”;html文件中的标记

Php 正则表达式,不使用“获取img”;“诺里斯”;html文件中的标记,php,regex,Php,Regex,我计划处理html文件的每个img。这些图像不得包含“noresize”一词。 我创建regex是为了获得img: #<img(\s[^>]*)>#ie #]*)>#即 这是相当好的工作,但我找不到如何指定“没有noresize” 我试过这样的方法: #<img(\s[^>]*)((?!noresize).)>#ie #]*((?!noresize)。># 但很明显,这不是我需要的 有什么想法吗? Julien这是使用XPath,我认为这是解决您问题的

我计划处理html文件的每个img。这些图像不得包含“noresize”一词。 我创建regex是为了获得img:

#<img(\s[^>]*)>#ie
#]*)>#即
这是相当好的工作,但我找不到如何指定“没有noresize”

我试过这样的方法:

#<img(\s[^>]*)((?!noresize).)>#ie
#]*((?!noresize)。>#
但很明显,这不是我需要的

有什么想法吗?
Julien

这是使用XPath,我认为这是解决您问题的更好方法;)


如果您已经用正则表达式成功捕获了IMG标记,为什么不在每个匹配上运行一点后处理,比如
stripos($tag,'noresize')==false
——当然这也会错误地检测图像名称,比如
noresize.jpg

或者,像普通人一样使用HTML/DOM解析器:

像这样的事

'/<img(((?!noresize)[^>])*)>/ie'
'/]*)*)>/ie'

你不应该使用正则表达式解析HTML。你应该使用a遍历HTML,并清晰地提取你想要的元素。不过,认真地说,欢迎使用。用正则表达式解析HTML在这里是一种常见的噱头,因此响应是。尽管如此,使用DOM解析器确实是最好的方法。Regex并不是合适的工具。ಠ_ಠ尝试使用正则表达式解析HTML就像使用奶酪建造战舰一样。在火山的中部。当它喷发的时候。
'/<img(((?!noresize)[^>])*)>/ie'