php 正则从右向左搜索的语法如何写啊?
例如有下面的一个字符串:
$str = "http://www.aaa.com/aa/aa/aa/aa.rar/.page";
因为aa.rar之后的字符串是固定的,之前的字符串是变化的没有规律可言,
其实我就想匹配得到aa.rar(.rar是固定的aa即文件名也不是固定的)
一时想不起来什么办法,所以想问一下从后向前匹配如何写,当然大家如果有好的办法,希望分享一下,谢谢
例如有下面的一个字符串:
$str = "http://www.aaa.com/aa/aa/aa/aa.rar/.page";
因为aa.rar之后的字符串是固定的,之前的字符串是变化的没有规律可言,
其实我就想匹配得到aa.rar(.rar是固定的aa即文件名也不是固定的)
一时想不起来什么办法,所以想问一下从后向前匹配如何写,当然大家如果有好的办法,希望分享一下,谢谢
解决方案 »
- phpexcel 导出乱码问题!!各位前辈帮帮!!
- 一个正则式如何解决
- 请教最好最实用最通俗也的PHP教材?
- 求一个完整的无限分类的树形类,,,
- php.ini的问题`
- Apache里的DocumentRoot "D:/"可不可以设为网上邻居里面比如说 "\\seo\",可以的话路径应该怎么写?
- 在学正则..想用preg_match_all代替eregi(),我快疯了!!!
- 郁闷死了。。。。大虾帮个忙,应该用什么类型的呀?
- 怎么让网页打开时先自己自动刷新一次?
- 对接短信通道商短信发不出去,求指教,大神指导一下吧
- 急!!!!Smarty问题,表单无法传递参数。
- 如何用php写个 注册 发送激活邮件的功能
$str = "http://www.aaa.com/aa/aa/aa/aa.rar/.page";
你想得到aa.rar,
1. 可以用字符串处理函数,explode('/'),这样返回的数组的倒数第二个值,是你想得到的;
2. aa.rar是出现在‘/’字符之前和之间的,所以可以利用‘/’字符的位置,截取aa.rar;
3. 利用正则表达式
$reg = '/[\:\/\.\w\d]+\/([\w]{1}[\w\d]*\.rar)\/.+/';
$replaceMent = '\${1}\';
$fileName = preg_replace(reg,$replaceMent,$str);
$fileName 为你要的值
$pat = '#(.*)/((.*).rar)/.page$#'; $str0 = "sdfsdfsdfaa.com/aa/aa/aa/aa.rar/.page";
$str1 = "http://wwsdfsdfm/aa/aa/aa/aa.rar/.page";
$str2 = "要可耕地地.com/aa/aa/aa/aa.rar/.page";preg_match($pat,$str2,$matches);
echo $matches[2]; //三个str都输出 aa.rar, 如果只要aa的名字则取echo $matches[3];