弱弱的第二问, js与php正则的不同

mingkin 2009-05-25 02:32:57
我要匹配gg图片的url, 例如:

http://lh4.ggpht.com/_O4CYqF-JdJg/Sho6jaBw0CI/AAAAAAAAAKg/9ALDbl1WAMc/s72/test.jpg

在js下, 我这样是可以的:

/^http:\/\/[A-Za-z0-9\-_\/\.]+\.(jpg|png|gif)$/

但在php下, 这样是失败的

#^http:\/\/[A-Za-z0-9_\-\/\.]+\.(jpg|png|gif)$#

为什么啦? 正则在js和php下有什么分别?

另外, php下

用##和用//来包括正则的pattern有什么分别呢?

谢谢
...全文
100 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
aiur 2009-05-25
  • 打赏
  • 举报
回复
奇怪,唠叨为什么等级是5个三角,应该是n多星星啊
xuzuning 2009-05-25
  • 打赏
  • 举报
回复
$s = "http://lh4.ggpht.com/_O4CYqF-JdJg/Sho6jaBw0CI/AAAAAAAAAKg/9ALDbl1WAMc/s72/test.jpg";

preg_match("#^http:\/\/[A-Za-z0-9_\-\/\.]+\.(jpg|png|gif)$#", $s, $r);

print_r($r);



Array
(
[0] => http://lh4.ggpht.com/_O4CYqF-JdJg/Sho6jaBw0CI/AAAAAAAAAKg/9ALDbl1WAMc/s72/test.jpg
[1] => jpg
)
程序猿之殇 2009-05-25
  • 打赏
  • 举报
回复
js和php正则基本上没有什么区别.
最大的区别在于:
js上正则表达式不需要用引号括起来, 用//来包含表达式就可以了,js将其作为对象来处理.
PHP下必须要用引号括起来,将其做为字符串处理.

在php下,##与//是没有区别的.

21,886

社区成员

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

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