正则表达式确实很烦

pwtitle 2004-09-23 10:57:12
不是烦,我讨厌用这家伙。

我想取得一个php连接的各href的各部分。我的pattern问题在哪里?
<a href="filename.php?query=string" target='_blank'>测试</a>

分别取得filename ? query=string target='_blank' 测试 这几部分。

$pattern = '/href[[:space:]]*=[[:space:]]*"?([:alnum:]+)\.php(\??)([[^"]?.*]+)"?[:space:]?([^>].*)>(.*)<\/a>/';


哪位正则老大帮我搞定?
...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pwtitle 2004-09-24
  • 打赏
  • 举报
回复
filname.php两边有 * 个空格。是用有("|')或没有包围的。
"和'的包围中间有* 个空格
有或没有queryString即(?即?后的东西)
有或没有其他比如target信息
最后一个>之前有 * 个空格

<a href="xxx.php">xx
<a href='xxx.php'>xxx
<a href ="xxx.php" >xxxx
<a href= xxx.php >xxxxx
<a href=xx.php?>
<a href=xx.php?query...>
<a href=xx.php?query... target... >
...............
等等情况了。

pwtitle 2004-09-24
  • 打赏
  • 举报
回复
楼上的不完全对,取得的$out[1] = "
而且不能取得
<a href=filename.php>
<a href="filename.php" target=.....>
<a href = filename.php.....>
等等情况。

另问一句,你那个\\1什么意思?

ice_berg16 2004-09-24
  • 打赏
  • 举报
回复
$str = '<a href="filename.php?query=string" target="_blank">测试</a>';
$re = "|href=([\"\']?)(\w+)\.php\?(.+)\\1 (.+)>(.+)<|isU";

preg_match($re,$str,$out);
print_r($out);
hleren 2004-09-24
  • 打赏
  • 举报
回复
target='_blank'?

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧