谁帮我解释一下下面的代码的含义?谢谢!

fengyepiaoling 2005-07-01 05:34:18
$regs[1] = eregi_replace('(href[[:space:]]*=[[:space:]]*"?)([[:alnum:]:@/._-]+)("?)',"\\2",$regs[1]);

eregi('(href[[:space:]]*=[[:space:]]*"?[[:alnum:]:@/._-]+"?)(.*)',$line,$regs)

...全文
126 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ice_berg16 2005-07-03
  • 打赏
  • 举报
回复
[:space:] = \s 任何空白字符
[:alnum:] = [0-9a-zA-Z] 字母和数字

这个正则将一个类似href="http://www.csdn.net" 的URL地址替换成http://www.csdn.net
也就是只取得地址部分,不过写有点太复杂了
afei0220 2005-07-03
  • 打赏
  • 举报
回复
mark
  • 打赏
  • 举报
回复
晕,看来我将?搞错了,它是转义字符,并非标准字符?

所以,楼上的是正解。
  • 打赏
  • 举报
回复
关键点就在于eregi_replace的第二个参数"\\2",表示是取得第一个参数中第二个小括号里表示的原始内容.
  • 打赏
  • 举报
回复
晕了,好复杂的正则表达式呀。
[:space:]代表啥意思来着?space不会代表空格吧,汗~~~~
那么[:alnum:]应该就是代表任何有效的字符(即我们看得到的字母和数字和符号)

这么说来,那
$regs[1] = eregi_replace('(href[[:space:]]*=[[:space:]]*"?)([[:alnum:]:@/._-]+)("?)',"\\2",$regs[1]);

就表示这个表达式的功能是取得地址栏里的"?"后面的参数列表:)

fengyepiaoling 2005-07-02
  • 打赏
  • 举报
回复
再顶一次
fengyepiaoling 2005-07-02
  • 打赏
  • 举报
回复
顶一下

21,891

社区成员

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

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