我试图提取用户名正则表达式//获取价值:从<a>链接
preg_match_all("/\<a href\=\"/Users\/(\D+)\/\"\>(.*)\<\/a\>", $file_content, $matches);
从以下
<a href="/Users/stackoverflow">stackoverflow</a>
但它不显示任何
你能告诉我:(那里有什么不对?
我试图提取用户名正则表达式//获取价值:从<a>链接
preg_match_all("/\<a href\=\"/Users\/(\D+)\/\"\>(.*)\<\/a\>", $file_content, $matches);
从以下
<a href="/Users/stackoverflow">stackoverflow</a>
但它不显示任何
你能告诉我:(那里有什么不对?
你有一个不必要的\/
包含在你的正则表达式中,你不需要转义<
或>
或=
。因此,改变你的正则表达式如下图所示,
<a href=\"/Users\/(\D+?)\">(.*)<\/a>
"/\<a href\=\"/Users\/(\D+)\/\"\>(.*)\<\/a\>"
^
|
谈到(\D+)
到非捕获组将只剩下一个组。
<a href=\"/Users\/(?:\D+?)\">(.*)<\/a>
非常感谢您的帮助和有用的链接:)
这里是我的最终代码:
$matches = array();
preg_match_all("<a href=\"/Users\/(\D+?)\">", $file_content, $matches);
foreach($matches[1] as $child) {
echo $child . "\n";
}
你在你的匹配字符串有一个正斜杠这是不存在在数据你要匹配:
preg_match_all("/\<a href\=\"/Users\/(\D+)\/\"\>(.*)\<\/a\>", $file_content, $matches);
^
这是期待:
<a href="/Users/stackoverflow/">stackoverflow</a>
即只是href属性的结束引号之前另一斜线,如计算器/“>
所以它永远不会匹配。
天哪!我没看见它!谢谢 :))) – 2014-11-01 01:29:01
谢谢,我现在给它一个 – 2014-11-01 01:06:18
当然,让我知道它是否有效。 – 2014-11-01 01:06:54