使用preg_match_all(),我希望匹配如下内容:
...randomtext...>MATCH1</a>" (MATCH2)"...randomtext...
编辑:澄清一下,这正是我试图从中提取数据的字符串,包括括号,引号,尖括号等。
以下是我尝试过的内容:preg_match_all("/^>(.+?)</a>\" \((.+?)\)\"$/", $htmlfile, $matches);
它应将MATCH1
提取为$matches[1][0]
,将MATCH2
提取为$matches[2][0]
知道为什么它不起作用吗?
由于
答案 0 :(得分:3)
您需要在模式中转义/
,并且不希望您的模式固定为^
和$
所以这可能会起作用:preg_match_all("/>(.+?)<\/a>\" \((.+?)\)\"/", $htmlfile, $matches);
答案 1 :(得分:3)
您没有转义结束标记</a>
这应该有效:
preg_match_all("/>(.+?)<\/a>\" \((.*?)\)/", $htmlfile, $matches);
请参阅Codepad example。