【发布时间】:2023-03-06 00:07:01
【问题描述】:
我想做的是从我正在解析的简单文本中获取属性值。我希望能够在引号内包含 HTML,所以这就是让我现在停滞不前的原因。
$line = 'attribute = "<p class=\"qwerty\">Hello World</p>" attribute2 = "value2"'
我已经到了获取值的点(子字符串)
$line = '"<p class=\"qwerty\">Hello World</p>" attribute2 = "value2"'
如果文本中没有转义引号,我当前的正则表达式可以工作。但是,当我尝试转义 HTML 引号时,它根本不起作用。此外,使用 .* 将结束第二个属性。
我试图从上面的字符串中获得的是
$result = '<p class=\"qwerty\">Hello World</p>'
这是我在尝试和错误正则表达式方面所取得的进展。
$value_regex = "/^\"(.+?)\"/"
if (preg_match($value_regex, $line, $matches))
$result = $matches[1];
非常感谢您!
【问题讨论】:
-
为什么不直接使用 HTML 解析器来完成这项任务
-
我目前正在学习如何在 php 中创建词法分析器和解析器。这是我目前正在学习的东西,如果能得到任何帮助,我将不胜感激。