1

次のように形成されたPHPの文字列がいくつかあります。

26301 - DEP : df 30 01 codename, CODE : cdef

大文字の部分は定数で、その他の部分は変数です。

したがって、パターンは次のようになります。

xxxxxx - DEP : yy zz kk wwwwwwww, CODE : ffff

変数部分の長さは異なる可能性があるため、定数は、DEP、記号「:」、記号「,」、CODE、および記号「:」のみになります。

「パターン」を使用して PHP でこれらの部分を抽出する方法はありますか、それとも id をスペースで分解し、すべての場所をチェックして定数を検索する必要がありますか? 何かアドバイス?

最初の文字列から、次のように作成したいと思います。

$dep = "df 30";
$codenumber = "01";
$code = "cdef";
4

2 に答える 2

1

正規表現の使用:

$str = '26301 - DEP : df 30 01 codename, CODE : cdef';
preg_match('/(.+) - DEP : (.+) (\d+) codename, CODE : (.+)/', $str, $array);
list($str, $line, $dep, $codenumber, $code) = $array;
echo "line: $line, dep: $dep, codenumber: $codenumber, code: $code";
// Result: line: 26301, dep: df 30, codenumber: 01, code: cdef
于 2013-03-21T11:13:07.240 に答える
1

sscanf() は行く方法です: http://www.php.net/manual/en/function.sscanf.php

あなたの場合、それは次のようなものかもしれません:

$var = "26301 - DEP : df 30 01 codename, CODE : cdef";
list($first, $second, $third, $fourth, $fifth, $sixth) = sscanf($var, "%d - DEP : %s %d %d %s, CODE : %s");
于 2013-03-21T11:01:48.227 に答える