正規表現チート表

正規表現チート表を作成しました。画像を保存してご利用ください。

正規表現チート表
正規表現チート表

(※見た目上、不要なところに半角スペースを入れていることがあります。)

文字表現 – 16個

文字表現意味
\ d数字。0 から9 のどれかひとつの文字のこと。
\ D数字ではない文字ひとつのこと。
\ w「大小英数字とアンダーバー」のどれかひとつの文字のこと。
\ W\ w 以外の文字ひとつのこと。
\ sホワイトスペース文字(!?)ひとつのこと。
\ S\ s 以外の文字ひとつのこと。
\ tタブひとつのこと。
\ n改行文字ひとつのこと。
\ rキャリッジリターン(改行文字?)ひとつのこと。
.どんな文字でもいいのでひとつのこと。
^ . . .「先頭」指定の3文字のこと。
. . . $「行末」指定の3文字のこと。
x y z「 x y z 」という直接文字指定。
[ x y z ]x か y か z のいずれか一文字のこと。
[ ^ x y z]x と y と z 以外の文字ひとつのこと。
[ a – z ]a から z の中の文字ひとつのこと。

表現の繰り返し

直前の文字をどう繰り返すか?」
「繰り返しの回数はどうしますか?」

繰り返しには不定量と定量があります。「不定量と定量」って言葉はいま思いつきで書きました。正確には間違っているかもしれません。

不定量

「決まっていない量」でしょうか。自分で書いておきながら…。早速こちらをご覧ください。3つあります。

繰り返し表現意味
. *ドットがあってもなくてもいい。
ドットがどんなにあってもいい。
「あ*」ならあでもああでも、
あが無限でもいい。
あがなくてもいい。
「 \ d * 」なら数字が無くても1桁でも無限でもいいい。
. +ドットは必ずあること。
それ以外は * と同じ。
. ?ドットがあるかないかの2択。「あ*」なら、あがあるかないか。

こんな表作ってみました。即席で自分で書けるといいですね!

文字が0個1個2個以上
. *
. +
. ?

【Rubyコード】

=begin
例:「yamada taro」
正規表現:\w+\s\w
=end

str = "yamada taro"
puts str.slice(/\w+\s\w+/) #yamada taro

puts str.slice(/\w+\s\w/) #yamada t

puts str.slice(/\w+/) #yamada

※正規表現は自由なのでこれは上記はあくまでも素人の正規表現です。プログラムに適したものを作成してください。

メールアドレスの正規表現って100%固まったものまだないらしいですね?ネット探せば出てきます。

正規表現サンプル集
https://www.megasoft.co.jp/mifes/seiki/index_s3.html

例:メールアドレス表現サンプル
[ \ w . \ – ] + @ [ \ w \ – ] + . [ \ w . \ – ] +

定量

「量が決まっている」ということでしょうか?実際、量が決まっているのは1パターンしかないのですが…。

繰り返し表現意味
. { n }文字を n 回繰り返す
. { n , }文字を n 回以上繰り返す。最低 n 回ということです。
. { n , m }最低 n 回、多くて m 回ということです。

n をゼロにする意味がないので、全体的に必ず文字がある前提でしょうね。「 *, +, ? 」と上手に利用していけばいいと思いますし、自分の鉄板が見つかるといいと思います。

最短マッチ

正規表現まとめver1 | OKE2GOUの「補足1」をご覧ください。

「 * や + 」の後ろに「?」をつけると2つの文字の組み合わせで特殊な機能を作成するようです。

「 ? 」は「 ? 」でも違う「 ? 」になると思ってもいいでしょうか?厳密には同じでしょうかね?

https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions/Quantifiers
「マッチが見つかるとすぐに停止します。」

最短マッチも結構使う気がしますので徐々に感覚をつかんでいけばいいと思います。