[PHP-users 32319] Re: 正規表現の$のエスケープ

Mashiki mashiki @ yanah.com
2007年 6月 17日 (日) 23:35:40 JST


 Mashikiです。

ダブルクォートでくくられた文字列内で「¥」は特殊な意味があります。
かわしかたはいくつかありますが、例えば以下で。

もう一度エスケープする
 if (ereg ("(\\$[a-zA-Z0-9]+) *= *(.*)", $data, $regs)) {

シングルクォートをつかう
 if (ereg ('(\$[a-zA-Z0-9]+) *= *(.*)', $data, $regs)) {

¥を使わない
 if (ereg ("([$][a-zA-Z0-9]+) *= *(.*)", $data, $regs)) {


>初めまして、フミと申します。
>PHPのプログラムから変数名を抽出するプログラムを
>書きたいですが、記号「$」に関するマッチングがうまくいき
>ません。
>正規表現では$その文字について「\$」で表現するのが
>まちがっていますか?
>$data="\$abcd06 = 31;";
>if (ereg ("(\$[a-zA-Z0-9]+) *= *(.*)", $data, $regs)) {
>   echo "$regs[2].$regs[1]---$data";
>} else {
>   echo "Invalid data format: $data";
>}
>ではうまくいきませんでした。
>誰かがご教示をください。
>よろしくお願いします。
>
>フミ
>
>
>
>--------------------------------------
>Start Yahoo! Auction now! Check out the cool campaign
>http://pr.mail.yahoo.co.jp/auction/
>_______________________________________________
>PHP-users mailing list  PHP-users @ php.gr.jp
>http://ml.php.gr.jp/mailman/listinfo/php-users
>PHP初心者のためのページ - 質問する前にはこちらをお読みください
>http://www.php.gr.jp/php/novice.php3


PHP-users メーリングリストの案内