我需要在下面的示例网址中同时匹配 test1 和 test3 :
http://www.domain.com/:test1/test2/:test3
这个正则表达式没有这样做:
(:.*?/?)
有什么想法吗?
答案 0 :(得分:1)
是你在寻找什么?
/:([^\/]+)/i
答案 1 :(得分:1)
这个会做:
$str = 'http://www.domain.com/:test1/test2/:test3';
preg_match_all('~:\w+~', $str, $matches);
var_dump($matches);
输出:
array(1) {
[0] =>
array(2) {
[0] =>
string(6) ":test1"
[1] =>
string(6) ":test3"
}
}
说明:
~ starting delimiter
: a colon
\w a *word* char
+ as many of them as possible
~ ending delimiter
答案 2 :(得分:1)
我认为这可能适合你:
$string = 'http://www.domain.com/:test1/test2/:test3';
preg_match_all('#:.*?/|:.*#i', $string, $matches);
var_dump($matches);
答案 3 :(得分:0)
有一个小教程解释了正则表达式引擎如何解释?和*在这里: