1

使用 preg_match_all(),我想匹配如下内容:

...randomtext...>MATCH1</a>" (MATCH2)"...randomtext...编辑:澄清一下,这正是我试图从中提取数据的字符串,包括括号、引号、尖括号等。

这是我尝试过的:preg_match_all("/^>(.+?)</a>\" \((.+?)\)\"$/", $htmlfile, $matches);

它应该提取MATCH1as$matches[1][0]MATCH2as$matches[2][0]

知道为什么它不起作用吗?

谢谢

4

2 回答 2

3

你需要/在你的模式中转义,你希望你的模式锚定到^$

所以可能这会起作用:preg_match_all("/>(.+?)<\/a>\" \((.+?)\)\"/", $htmlfile, $matches);

于 2012-08-12T05:32:07.517 回答
3

你没有逃脱你的结束标签</a>

这应该有效:

preg_match_all("/>(.+?)<\/a>\" \((.*?)\)/", $htmlfile, $matches);

请参阅键盘示例

于 2012-08-12T05:32:19.563 回答