以下のURLに書かれているmb_eregを

preg_match_allを使用して、マッチする
文字列を複数取得したいのですが
どのように記述すればいいでしょうか?

http://q.hatena.ne.jp/1210744904

回答の条件
  • 1人5回まで
  • 登録:2008/05/15 10:38:35
  • 終了:2008/05/22 10:40:03

回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/05/15 11:16:36

ポイント35pt

入力されたテキストを $str とすると、下記の通りで、複数ある10進コードを画面に表示します。

$pat1 = "/&#(63(6((4[7-9])|([5-9][0-9]))|(7[0-9][0-9])|(8(([0-2][0-9])|3[0-8]))));/";
$pat2 = "/[0-9]{5}/";

if (preg_match_all($pat1, $str, $mat, PREG_SET_ORDER) > 0) {
    foreach ($mat as $cd) {
        echo $cd[1] . "<br />\n";
    }
}

なお、$str は日本語を含むという前提なので、preg_match_allでは確実に分離できない可能性があります。そのため、従前の回答では mb_ereg_match を使いました。

PHPの仕様上、$str が UTF-8 なら大丈夫のはずですが、ちょっと不安です。

mb_ereg_match を使って preg_match_all 相当のユーザー関数を作るといいと思うのですが‥‥どなたかにヘルプをお願いします。

このあたりの事情については、過去質問「PHPのpreg_match_all関数について」を参考にしてください。

id:hopefully

実行したら

No ending delimiter ”&amp;” found i

という風になっていまうのですが・・・

2008/05/15 12:32:21
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332008/05/15 15:35:26

ポイント35pt

実行したら

No ending delimiter ”&amp;” found i

という風になっていまうのですが・・・

#1のコードとは別の部分のエラーではないかと‥‥ソースコード全体とエラー発生行をお知らせください。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません