我一直在查看这些问题并对我的问题有了更好的了解,但仍然没有找到答案。
我对 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 解析器来处理类似的东西,但我担心这种做法可能会消耗多少资源。你认为这是一个更好的主意吗?谢谢!