0

私はphpに文字列を持っています

$str = "@113_Miscellaneous_0 = 0@,@104_documentFunction_0 = 1@";

@ char の間の文字列を抽出して、結果の結果が配列になるように、正規表現を適用するにはどうすればよいですか

result[0] = "113_Miscellaneous_0 = 0";  
result[1] = "104_Miscellaneous_0 = 1";  

@Fluffeh@ Utkanosを編集してくれてありがとう-このようなことを試しました

$ptn = "@(.*)@";  
preg_match($ptn, $str, $matches);  
print_r($matches);  

output:
     Array
        (
            [0] => \"113_Miscellaneous_0 = 0\",\"104_documentFunction_0 = 1\"
            [1] => \"113_Miscellaneous_0 = 0\",\"104_documentFunction_0 = 1\"
        )
4

2 に答える 2

3

貪欲でない一致を使用し、

preg_match_all("/@(.*?)@/", $str, $matches);
var_dump($matches); 
于 2012-08-13T11:20:01.813 に答える
1

あなたはそれを別の方法で行うかもしれません:

$str = str_replace("@", "", $str);
$result = explode(",", $str);

編集

よし、これを試してみてください:

$ptn = "/@(,@)?/";
$str = "@113_Miscellaneous_0 = 0@,@104_documentFunction_0 = 1@";
preg_split($ptn, $str, -1, PREG_SPLIT_NO_EMPTY);

結果:

Array
(
    [0] => 113_Miscellaneous_0 = 0
    [1] => 104_documentFunction_0 = 1
)
于 2012-08-13T11:22:38.347 に答える