preg_match('/(?P<namespace>.+\\\)?(?P<class>[^\\\]+$)/', $class, $matches);
展开全部
1)例子
$class = 'abcd\\efghijklop';
preg_match('/(?P<namespace>.+\\\)?(?P<class>[^\\\]+$)/', $class, $matches);
print_r($matches);
输出:
Array
(
[0] => abcd\efghijklop
[namespace] => abcd\
[1] => abcd\
[class] => efghijklop
[2] => efghijklop
)
2)规则说明
(?P<name>)是命名子组,可以接受(?<name>), (?'name') 以及(?P<name>)语法.
(?P<namespace>.+\\\)
. 匹配除换行符以外的任意字符
+ 是包含一个以上
\是转义符,\\\匹配源串中的1或2个\
? 重复零次或一次
(?P<class>[^\\\]+$)
[^\\\]+ 表示一个以上非\的字符串
$表示结尾
$class是源字符串
$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
$class = 'abcd\\efghijklop';
preg_match('/(?P<namespace>.+\\\)?(?P<class>[^\\\]+$)/', $class, $matches);
print_r($matches);
输出:
Array
(
[0] => abcd\efghijklop
[namespace] => abcd\
[1] => abcd\
[class] => efghijklop
[2] => efghijklop
)
2)规则说明
(?P<name>)是命名子组,可以接受(?<name>), (?'name') 以及(?P<name>)语法.
(?P<namespace>.+\\\)
. 匹配除换行符以外的任意字符
+ 是包含一个以上
\是转义符,\\\匹配源串中的1或2个\
? 重复零次或一次
(?P<class>[^\\\]+$)
[^\\\]+ 表示一个以上非\的字符串
$表示结尾
$class是源字符串
$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询