• ベストアンサー
  • 暇なときにでも

正規表現について

phpの初心者です。 あるサンプルのプログラムを読んで勉強していたのですが、正規表現の使い方がよく解らず本やサイトで調べましたが、それでも解らなく。 下記の場合ですと同様な結果になるのでしょうか? ereg("(.*)#(.+)",$aa,$bb) また、正規表現に詳しいサイトがあればご紹介頂けますか? 本当に申し訳ありません。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数104
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

一つしか例がないのにどれと同様な結果になるのでしょうか? もしかして$aaと$bbが?その場合$aaに何が入っているのかが分からないと答えられません。 正規表現はとほほさんのところが参考になりそうですが、なぜか最近アクセスできない・・・?

参考URL:
http://www4.ocn.ne.jp/~kaerume/k2e/regex_top.html

共感・感謝の気持ちを伝えよう!

質問者からのお礼

説明不足で申し訳ありません。 moon nigthさんからご紹介頂いた"とほほさん"のサイトで理解できました。 例えば$aaに"abc#ss#zz"の文字があった場合、この場合#があるかのマッチングを行い結果、マッチしたので値はtrueが返り且つ$bb[0]に"abc#ss#zz"がセットされ、$bb[1]に"abc#ss"、$bb[2]に"zz"がセットされるという事でした。 ありがとうございました。

関連するQ&A

  • 正規表現について

    人名を漢字、平仮名、アルファベットでカンマ区切りでcsvファイルに保存したものがあるとします。 それで例えば、平仮名で一番初めが「あ」の人だけを表示させたいプログラムを書きたいのですがなかなかうまくいきません。 正規表現の使い方もいまいちわかっていなく、とりあえず全て平仮名かどうか調べるプログラムを、 http://phpspot.net/php/pg%90%B3%8BK%95%5C%8C%BB%81F%82%B7%82%D7%82%C4%82%D0%82%E7%82%AA%82%C8%82%A9%82%C7%82%A4%82%A9%92%B2%82%D7%82%E9.html のサイトからコピーして作成してみたのですが、表示されませんでした。 以下が作成したものです。 <?php $handle = fopen("csv.csv", "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); list($kanji,$hiragana,$alphabet) = explode(",", $buffer); if(mb_ereg("^[あ-ん]+$",$hiragana)){ $output .= "$kanji<BR>\n"; } } } fclose($handle); echo $output; ?> もし出来ましたら、先頭が「あ」だけを表示する正規表現の表し方なども教えていただけると助かります。 お願いします。

    • ベストアンサー
    • PHP
  • 正規表現

    正規表現で 数値と半角記号(!#$%()~|-^@[;],./`{+*}_)が入っているというものを表現したいのですが、、、 下記のような正規表現をすると、エラーになってしまいます。何かよい方法はありませんか? ^[a-zA-Z0-9\-_!#$%()~|-^@[;],./`{+*}_]*$ 又、携帯電話のチェックをしたいのですが、 1文字以上の文字列があってというような処理にしたいのですが、何かよい方法はないでしょうか? ereg( "@docomo\.ne\.jp$", $email )

    • ベストアンサー
    • PHP
  • PHP 正規表現

    はじめまして^^ 現在、PHPでプログラムを作っています。 そして、文字列の置き換えをする機会があり、 正規表現をつかうことになりました!! 置き換えに使う関数は、mb_ereg_replaceです! ある条件にあった部分の文字列を置き換えしたいと思っています。 そして、いろいろとやっていきましたら、あるひとつの壁にぶつかりました。。 例えば、PHPでは、正規表現の部分を [^文字]とやると、『文』と『字』という文字列以外にマッチという意味になるらしいのですが、 『文字』という文字列以外にマッチ、というふうに、表現したい場合は、 どう表現すればよいのですか? [^(文字)]とか、その他いろいろ、 自分なりに、色々ためしたのですが、うんともすんともいいません、、 どなたか、わかる方教えて下さいm(_ _)m

    • ベストアンサー
    • PHP
  • PHPの正規表現「ereg」で特定の数字範囲をマッチさせたい

    PHPの正規表現「ereg」で特定の数字範囲をマッチさせたい 宜しくお願い致します。 PHPの正規表現で、0~99までの数字があり、そのうち、「4~6」と「11~15」までの数字以外の場合にマッチさせる正規表現について教えて下さい。 自分なりに作ってみた正規表現パターンは下記の通りです。 ereg("([^4-6]{1})|[^11-15])",$hoge) もしくは ereg("([^4-6]{1})|[^11-15]{2})",$hoge) で試してみましたが、「4~6」はマッチしないのですが、「11~15」の時にもマッチしてしまいます。 どうすればいいのか、どなたか助けて下さいー!

    • ベストアンサー
    • PHP
  • 正規表現ですが・・・

    正規表現なんですが(Perlです。) Aa_abcd_aa.txt Aa_abcd_bb.txt Aa_abcd_cc.txt Bb_abcd.txt 上記のabcdの部分をマッチさせるために (?<=Aa_|Bb_).*(?=_aa|_bb|_cc|\.txt) としてみましたが、これでは Aa_abcd_aa.txt Aa_abcd_bb.txt Aa_abcd_cc.txt のabcd_aaやabcd_bbやabcd_ccとマッチしてしまいます。 なにかよい表現の仕方はありますか? まとめてマッチさせる表現が知りたいです。

  • 正規表現のサンプル豊富なサイト

    正規表現の素人です。 サンプル豊富なサイトで勉強させていただきたいのですが、適当なサイトをご紹介いただけないでしょうか。 #perlはわかりません。 #aspのコンポネントでperl互換の正規表現を利用するための勉強。 #aspも初心者レベル。

    • ベストアンサー
    • Perl
  • PHPの正規表現について

    // URLエンコード $str =~ s/([^\w ])/'%' . unpack('H2', $1)/eg; $str =~ tr/ /+/; これをPHPの関数を使った方法と使わなかった方法が知りたいです。 また、正規表現で、ereg.., preg.., mb_eregがありますが、この違いの詳細が知りたいです。

    • ベストアンサー
    • PHP
  • PHPと正規表現とワイルドカードについて

    まずググってみたのですが、PHPを問わずあまり正規表現やワイルドカードについて書かれてあるサイトが見つかりませんでした。 ほとんどが質問であって、正規表現やワイルドカードについて詳細な情報が掲載されているサイトは見つかりませんでした。 なので、ここは1冊そういう専門の書籍を購入するしか手段はないのか、と悩んでいます。 他には、正規表現やワイルドカードがPHPのプログラムを書くのにどれだけ必要なのか。 ZENDのPHP認定資格の試験問題にも正規表現についての問題はあまりないのではないか、という気がしています。 皆さん、どこで正規表現やワイルドカードの知識を得ているのでしょうか。 また、PHPをやっていくのにどれだけ重要性があるのか知りたくて質問しました。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 正規表現について

    HTMLファイルを読み込み、特定の文字列にリンクを付けて出力したいのですが上手くいきません。 例: <img src="./seiki_hyougen.gif" alt="正規表現についての説明">更に正規表現を知りたい方は、<a href="special.html">正規表現の詳しい説明</a>をクリックして下さい。  ↓正規表現をキーワードにしてリンクを付けたい。 正:<img src="./seiki_hyougen.gif" alt="正規表現についての説明">更に<a href="seiki_hyougen.html">正規表現</a>を知りたい方は、<a href="special.html">正規表現の詳しい説明</a>をクリックして下さい。 誤:<img src="./seiki_hyougen.gif" alt="<a href="seiki_hyougen.html">正規表現</a>についての説明">更に<a href="seiki_hyougen.html">正規表現</a>を知りたい方は、<a href="special.html"><a href="seiki_hyougen.html">正規表現</a>の詳しい説明</a>をクリックして下さい。 尚、下記URLのサンプルを参考にしてスクリプトを作成しています。 http://php.oss.eznetsols.org/manual/ja/function.preg-split.php $r = preg_split('((\/a>)|(<a))', $html, -1, PREG_SPLIT_DELIM_CAPTURE); for ($i = 0; $i < count($r); $i++) { if ($r[$i] == "<a") { $i++; continue; } $r[$i] = preg_replace( "/(正規表現)/i", "<a href='seiki_hyougen.html'>\\1</a>", $r[$i] ); } return join("", $r); この(正規表現)の部分で上手い正規表現を使えばalt="×××"の中にリンクタグが入らないようにできるのでは?と思っているのですが・・・。 どうか、良い方法を教えて下さい。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 携帯アドレスの正規表現

    現在、携帯アドレスの正規表現を行っていますが、 どうもうまくいきません。 実際に正規表現をするのは@よりも前の文字列です。 現在下記のようにしますとひらがなもOKになってしまいます。 !ereg( "^[a-zA-Z0-9!#$%&*+/=?^_{|}~.-]+", $email ) 何かよい方法はご存知ないでしょうか?

    • ベストアンサー
    • PHP