正規表現についてのチートシートです。正規表現の書き方を忘れた場合にご活用ください。
PHP: preg_match() / JavaScript: match() 正規表現チェッカー ver3.1 PHP及びJavaScriptコーディング中に正規表現を記述する際の動作チェック等にご利用ください。 正規表現と対象文字列を入力し、[チェック!]ボタンをクリックすると、PHP: preg_match()と JavaScript: match()の実行結果がフィードバックされます。 正規表現
2012年05月01日21:34 Ruby 正規表現で最短マッチを知っとくとちょっと便利かも 正規表現ってあるじゃないですか。そうです。アレです。 とっても便利で、いろんな場面で役立つと思うんですが、ときどき最短マッチを使いたくなって「最短マッチってどう書くんだっけなぁ?」ってなってググることがあります(よね!) 通常は最長マッチになる 通常、正規表現内で * とか + とか付けると、直前の表現の0回/1回以上の繰り返しを表しますが、この書き方だとできるだけ長い要素にマッチしようとします。大事なことなのでもう一度言います。できるだけ長い要素にマッチしようとするんです。 大抵はそれで構わないんですが、ときどきそれでは困るケースがあります。例えばこんなケースを考えてみましょう(あんまり良い例が思いつかない)。 ・"名前(ニックネーム)"という形式 ・名前と(ニックネーム)の間には半角or全角ス
ある正規表現に対して、特定の文字列がマッチするかどうかをチェックするツールやサイトは沢山ありますが、正規表現そのものが何を意味しているのか、どんな文字列を期待しているのかを解析・解読・説明してくれるツールやサイトってなかなか見ない気がします。 他人の書いた正規表現を見て、「ん?」ってなったことはありませんか? 例えばこれ。 1 ^[a-zA-Z0-9-_.]@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$ これくらいなら分かりますが、複雑になってくるとつらい… いつかはマスターしたいけど…今は楽したい。 そう思ってググってみると…ありました! それがこちら。 Regexper http://www.regexper.com/ 正規表現を入力して Display をクリックすると、その正規表現が表す内容を図にして表示してくれます。 例えば先程の正規表現は、当記事の一番上の
Shibuya.pm #16 「夏の正規表現祭り」で、正規表現のお話をさせていただきました。 まぁ、「電話番号にマッチする正規表現」とか「郵便番号にマッチする正規表現」とかよく書かれてるけど、「どれもこれも手緩いよね」って話。 あ、だいぶはしょったかな。 とりあえずスライドに書いたので、発表をご覧になってない方はスライドからご覧ください。 ふと見返すと、このブログで電話番号の正規表現を公表するのは 3 度目ですが、あれからだいぶ経ってますね。 今ではもっと厳密な正規表現を作っています。 そして、Number::Phone::JP に続き、Number::ZipCode::JP という酔狂なモジュールが公開された記念で、郵便番号にマッチする正規表現を今回初めて公開しますが、そもそもここまで厳密な正規表現が公開されること自体、本邦初公開ってヤツでしょう。 Shibuya.pm でも言いましたが
フォームのフリガナなどで全てひらがなのみ、またはカタカナのみかをチェックする方法です。 mb_ereg で判定する場合 mb_regex_encoding("UTF-8"); if (!mb_ereg("^[ぁ-ん]+$", $string)) { echo "ひらがなのみ"; } if (!mb_ereg("^[ァ-ヶー]+$", $string)) { echo "カタカナのみ"; } preg_match で判定する場合 mb_regex_encoding("UTF-8"); if (preg_match("/^[ぁ-ん]+$/u", $string)) { echo "ひらがなのみ"; } if (preg_match("/^[ァ-ヶー]+$/u", $string)) { echo "カタカナのみ"; } UTF-8 の文字コードの正規表現では u オプションをつけます。 参考
UTF-8 if(preg_match("/^[ァ-ヾ]+$/u",$str)){ echo "カタカナのみです"; }else{ echo "カタカナのみではありません"; } UTF-8 コード表記 if(preg_match("/^(¥xe3¥x82[¥xa1-¥xbf]|¥xe3¥x83[¥x80-¥xbe])+$/u",$str)){ echo "カタカナのみです"; }else{ echo "カタカナのみではありません"; } UTFでは、修飾子『 u 』をつけないと、「ダ」を認識できないことがあります。 (修飾子『 i 』などをあわせてつけたとき) EUC-JP コード表記 if(preg_match("/^(¥xa5[¥xa1-¥xf6]|¥xa1[¥xb3¥xb4¥xbc])+$/",$str)){ echo "カタカナのみです"; }else{ echo "カタカナのみ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く