Top > 正規表現


↓この呪文わかりますか?
^a.*[1-5]?.[^6-9]*?(x|z)$
少し覚えれば、この呪文が解けます!

^行の先頭を指します
「^a」は、aで始まるってことです
$行の末尾を指します
「z$」は、zで終わるってことです
.任意の1文字を意味します。
*直前に文字が0回以上の繰り返しを指します。
「a.*b」とするとabの間に任意の文字が何文字かあるよってことです
+直前に文字が1回以上の繰り返しを指します。
?直前に文字が0か1回出てくることを指します。
「a?b」とするとabの間に何も無いか、1文字何かあるかってことです

「.*」
を私は色んな場面で好んでよく使っています。
まーまず、何かをテキストで開いて、検索で正規表現にチェックを入れて検索してみましょう。

「a.*a」

いかがですか。aで始まり、次のaまでが検索対象になったことと思います。

「^a.*a」

いかがですか。先ほどの検索結果とは比べものならないほど検索結果が絞れたと思います。ここまでの記号だけでもかなり絞った検索が行えるはずですよ。

[ ][]の間の文字のいずれか1文字を指します。
[abc]の場合、aかbかcってことです
[ - ]-の間の文字を指します。
[a-z]の場合、aからzの間の文字ってことです。[0-9]なら…
[^ ][]の間以外の1文字を指します
[]内の^は、行の先頭を意味する場合と異なります
( | )|の左右のどちらかを指します
\d数字1文字を指します
\D数字以外1文字を指します
\s半角スペースかタブか改行の1つを指します
\tタブを指します
コーディングをタブで統一したい時、空白4文字をタブに置き換えたい場合に使ってます。

私は実際に上の方々だけでなんとかなっています。



ちなみにasciiコードは以下のようにな順番になっています。

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

↑の酔いそうな文字から考えられる正規表現があります。
例えば、上に書いていますが、[0-9][A-z]などはどの範囲を指すのはわかりますよね。

[!-/:-@≠\[-`{-~]

とすれば、半角記号だけを抽出する正規表現もできます。

[^!-~]

とすれば、半角以外とか、組み合わせで色々できます。試してみることをお勧めします。やって覚えるのが一番です!
何かやくに立つこともあるかも知れませんので書いときますね。

まだ正規表現の表記はありますので、もっともっと情報がほしい方は他のサイトでお願いします。m(_ _)m
いいサンプルも見つかるはずです。

CGI/Perlでのサンプル

^ , $ 行の先頭、末尾で終わる文字を指定
[...] マッチする複数の候補をあげる(.か.か.か)
[^...] 否定する文字を指定(...以外)
. ドットの1文字です。任意の1文字を表します。対象の文字数がわかっている場合に便利
i (オプション) 大文字、小文字の区別を行わない
時刻(12時間、24時間) 12時間、24時間表記の時刻を取得


Copyright © 2015 AchaPorutePiipo All Rights Reserved.