1

私はアウトプロジェクトでこの問題を抱えています

$line = substr($line,8);
$LIT_YARN = '".*"';
$VAR_NAME = '[A-Za-z][a-zA-Z0-9]*';
$TEMP2 = "/($LIT_YARN|$VAR_NAME)/";

$line = trim($line);
preg_match_all($TEMP2,$line,$params);

var_dump($params[0]);

簡単な入力は

" "askdj" "asjdk" "asdasndw" "

複雑な入力は

" "asd" Y "asd" X "

変数も入力可能

単純な入力は単一の文字列になりました

params[0] => "askdj" "asjdk" "asdasndw"

こういうの期待してた

params[0] => "askdj"
params[1] => "asjdk"
params[2] => "asdasndw"

複雑な入力は

params[0] => "asd"
params[1] => 'Y'
params[2] => "asd"
params[3] => 'X'

変数である X と Y を含む

トリックはどうすればいいですか?

4

3 に答える 3

0

これでうまくいくはずです:

preg_match_all('/"([A-Za-z0-9]+)"/', '" "askdj" "asjdk" "asdasndw" "', $Matches))

引用符、少なくとも 1 つの英数字、最後に引用符を照合する必要があります。括弧内に英数字を入れて出力をキャプチャし、$Matches.

于 2013-10-13T03:22:33.147 に答える
0
preg_match_all("/\"([A-Za-z0-9\s]+)\"|([A-Za-z][A-Za-z0-9]*)/", '" "askdj" "asjdk" "asdasndw" "', $Matches))

したがって、これはリテラル文字列と文字列変数を受け入れます.... @Zach Rattnerの回答に感謝します..

于 2013-10-13T03:39:18.260 に答える
0

変数 $line の値は何ですか?

おそらく、var_dump($params) で結果を確認できます。正規表現 $params[o

于 2013-10-13T03:23:05.240 に答える