0

以下のサンプル URL では、test1test3の両方を一致させる必要があります。

http://www.domain.com/:test1/test2/:test3

この正規表現はそれを行っていません:

(:.*?/?)

何かご意見は?

4

4 に答える 4

1

それはあなたが探しているものですか?

/:([^\/]+)/i
于 2013-06-02T23:23:53.023 に答える
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
于 2013-06-02T23:24:30.047 に答える
1

これはあなたのために働くかもしれないと思います:

$string = 'http://www.domain.com/:test1/test2/:test3';
preg_match_all('#:.*?/|:.*#i', $string, $matches);
var_dump($matches);
于 2013-06-02T23:27:09.560 に答える