1

'/srv/www/site.com/htdocs/system/application/views/'パス内の各ディレクトリ名に一致する正規表現に対してテストしたいとしますか?

このパターンのようなもの:これにより、 etc の配列が生成されます。'(/[^/])'
'srv','www','site.com'...

PS:私が書いた正規表現の構文は説明のためだけのものであり、テストされておらず、確かに間違っていますが、アイデアを与えるためだけのものです。

PS2:あることは知ってexplode()いますが、正規表現を使用してこれを実行できるかどうかを見てみましょう(これは、爆発しない他の言語やフレームワークに役立ちます)。

4

3 に答える 3

4

preg_match_all:

$str = '/srv/www/site.com/htdocs/system/application/views/';

preg_match_all('/\/([^\/]+)/', $str, $matches);

// $matches[0] contains matching strings
// $matches[1] contains first subgroup matches
print_r($matches[1]);

出力:

Array
(
    [0] => srv
    [1] => www
    [2] => site.com
    [3] => htdocs
    [4] => system
    [5] => application
    [6] => views
)
于 2009-08-18T15:51:57.333 に答える
1

preg_split爆発に似た正規表現でファイルを分割するためのものと、必要なことを行うpreg_match_allがあります。

于 2009-08-18T15:51:14.310 に答える
1

できないと思いますが、代わりにpreg_match_all()を使用して、正規表現から複数の一致を取得できます。より適切なpreg_split()もあります。

于 2009-08-18T15:52:01.483 に答える