※ ChatGPTを利用し、要約された質問です(原文:PHPにて指定した範囲の文字列取得について)
PHPで指定範囲の文字列取得方法
このQ&Aのポイント
PHPで指定した範囲の文字列を取得する方法について調べています。具体的には、指定した文字列内の[]内の文字列を配列に格納する方法についてです。正規表現を使用して取得する方法を試していますが、うまくいかないようです。
示されたコードでは、指定した文字列内の[]内の文字列を取得するために正規表現を使用していますが、うまくいかないようです。正しい正規表現パターンを見つけることができないため、問題が発生しているようです。
PHPで指定した範囲の文字列を取得するために、正規表現を使用していますが、うまくいかないようです。指定した文字列内の[]内の文字列を取得するための正しい正規表現パターンを見つける方法についてアドバイスを求めています。
指定した文字列内の[]内の文字列を配列に格納したいのですが、
たぶん正規表現の書き方が悪いため、取得がうまくいきません。
ご教授頂けないでしょうか。
$tag = "その他 ([FA1 type=s size=40 selection=4:commentテスト;1:選択肢1:q1=1:RD=1:RD=1;2:選択肢2::RD=1:RD=1;3::選択肢3:RD=2:RD=1;4:選択肢4::RD=2:RD=1])[FA2 type=s size=40 selection=4:commentテスト;1:選択肢1:q1=1:RD=1:RD=1;2:選択肢2::RD=1:RD=1;3::選択肢3:RD=2:RD=1;4:選択肢4::RD=2:RD=1]<[FA3 type=s size=40 selection=4:commentテスト;1:選択肢1:q1=1:RD=1:RD=1;2:選択肢2::RD=1:RD=1;3::選択肢3:RD=2:RD=1;4:選択肢4::RD=2:RD=1]>";
preg_match_all('/\[FA[\w\W]*\]/s',$tag,$tagArray,PREG_SET_ORDER);
取得イメージは以下の通りです。
$tagArray[0] = "[FA1 type=s size=40 selection=4:commentテスト;1:選択肢1:q1=1:RD=1:RD=1;2:選択肢2::RD=1:RD=1;3::選択肢3:RD=2:RD=1;4:選択肢4::RD=2:RD=1]"
$tagArray[1] = "[FA2 type=s size=40 selection=4:commentテスト;1:選択肢1:q1=1:RD=1:RD=1;2:選択肢2::RD=1:RD=1;3::選択肢3:RD=2:RD=1;4:選択肢4::RD=2:RD=1]"
$tagArray[2] = "[FA3 type=s size=40 selection=4:commentテスト;1:選択肢1:q1=1:RD=1:RD=1;2:選択肢2::RD=1:RD=1;3::選択肢3:RD=2:RD=1;4:選択肢4::RD=2:RD=1]"
お礼
Uオプションをつけると分解することができました。 ありがとうございます。