请教两个正则表达式, 几个链接格式如下:admin/news/addnews/listnews/A_edit如何通过正则取出:第一个'/'前的字符串不是admin并且该'/'后的字串不是以A_开头的字符串不区分大小写。谢谢~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?php$str = 'admin/news/add,news/list,news/A_edit';$a = explode(",", $str);$pattern = '/[^admin]\w+\/[^a]*(\/\w+)*$/i';$aMatch = array();foreach($a as $s) { if(preg_match($pattern, $s)) $aMatch[] = $s;}print_r($aMatch);?>out:Array( [0] => news/list) <?php$str = 'admin/news/add,news/list,news/A_edit';$a = explode(",", $str);$pattern = '/[^admin]\w+\/[^A_]*(\/\w+)*$/i';$aMatch = array();foreach($a as $s) { if(preg_match($pattern, $s)) $aMatch[] = $s;}print_r($aMatch);?>out:Array( [0] => news/list) preg_match_all('/^[^(admin)]\/a(.*)/i',$str,$matches); 以上三位写的都对,非就用[^],字母就用[a-zA-z]或\w,斜杠就用\/,只要你头脑清醒就能写的出,见正则一定不要怕,慢慢的分析。 本帖最后由 xuzuning 于 2010-05-06 09:05:34 编辑 $str = 'admin/news/addnews/listdadmin/newsnews/A_editnews/_edit';$pattern = '/^(admin.+)|(\w+\/(?!A_).*)(\/\w+)*/im';preg_match_all($pattern, $str, $aMatch);print_r($aMatch[2]);Array( [0] => [1] => news/list [2] => dadmin/news [3] => news/_edit) php API问题 如何实现API 请教高手 正则 分页问题 网站被黑后的快速恢复办法 apache 2.2.3 和 php 5.2.0的使用 想用php写个blog网站,请各位大哥给点思路!!!多谢!!! 模板文件中,变量{NAME}里面的字母,应该大写,还是小写? 请教如何实现这样的链接。 session的问题! 关于的到访客的ip和从何处来的,载线等待,100分 !!! 然后去判断? 简单的href问题
<?php
$str = 'admin/news/add,news/list,news/A_edit';
$a = explode(",", $str);
$pattern = '/[^admin]\w+\/[^a]*(\/\w+)*$/i';
$aMatch = array();
foreach($a as $s) {
if(preg_match($pattern, $s))
$aMatch[] = $s;
}
print_r($aMatch);
?>
out:
Array
(
[0] => news/list
)
<?php
$str = 'admin/news/add,news/list,news/A_edit';
$a = explode(",", $str);
$pattern = '/[^admin]\w+\/[^A_]*(\/\w+)*$/i';
$aMatch = array();
foreach($a as $s) {
if(preg_match($pattern, $s))
$aMatch[] = $s;
}
print_r($aMatch);
?>
out:
Array
(
[0] => news/list
)
news/list
dadmin/news
news/A_edit
news/_edit';$pattern = '/^(admin.+)|(\w+\/(?!A_).*)(\/\w+)*/im';
preg_match_all($pattern, $str, $aMatch);print_r($aMatch[2]);Array
(
[0] =>
[1] => news/list
[2] => dadmin/news
[3] => news/_edit
)