【发布时间】:2011-11-04 16:11:49
【问题描述】:
我一直在查看问题,对我的问题有了更好的了解,但仍然没有找到答案。
我在 PHP 中遇到了正则表达式的问题。我正在尝试获取 HTML 文件的“alt”属性中的所有文本。我正在考虑所有可能的标签名称(img、input 和 area)和各种可能性,比如字符之间的空格和换行符(比如<img alt = "Hello">)。还必须注意,匹配字符串可以用单引号或双引号括起来,并在内部包含其他(不同的)引号,例如:<img alt="Alan's picture"> 或 <img alt='Example for the word "hello" in the text'>。
这对我来说变得越来越困难(我是正则表达式的初学者),所以我将向您展示我所得到的。请注意,我试图在字符类中使用反向引用,我发现这是一种错误的做法(或者我认为)。
'/<\s*(?:img|input|area)\s[^>]*alt\s*=\s*("|\')([^\1>]*)\1[^>]*>/siU'
我在 StackOverflow 中也看到过,有些人推荐 HTML 解析器来处理此类内容,但我担心这种做法可能会消耗多少资源。你认为这是一个更好的主意吗?谢谢!
【问题讨论】:
-
而且您并不担心正则表达式解决方案会消耗多少资源(CPU 和人工维护)?
-
这就是我的意思... HTML 解析器会消耗更多资源吗?或更少?我现在正在尝试使用 HTML 解析器替代方案,但我想更好地了解哪种方法消耗的资源更少。