文字列の検索や置換をするときに便利な正規表現をまとめてみました。簡単なものから順に並べているので、実行しながら遊んでみてください。
正規表現ってなに?
正規表現とは、とある文字を文字列内から探し出すための照合パターンみたいなものです。
どんなときに使うの?
文字を整形したり、取得した文字列から目的の文字を抽出するときに使います。最近のエディタでは検索機能に加えて正規表現での検索や置換も対応しているので、複雑な検索や置換も一発でできるようになります。「あーー!ここだけサクッと取得したいのに!」ってときは正規表現を覚えておくとかなり便利です。簡単な条件分岐みたいなことまで出来るので、プログラミングする時に無駄なif文を減らすこともできます。
リンク先にあるWEB上で正規表現を試せるツールについて
リンク先のツールは@phi_jp氏が作成したものです。簡単に正規表現を試せるのでおすすめです。
JavaScript正規表現 100サンプル
1文字のマッチ
001. 何でもいい1文字
002. 数字1文字
003. 英数字1文字
004. 空白文字(スペース)
005. 一致させる1文字のパターンを自分で作る
繰り返し
006. 「何でもいい1文字を0回以上」のパターン
007. 「何でもいい1文字を1回以上」のパターン
008. 「何でもいい1文字を0回か1回」のパターン
009. 「何でもいい1文字を指定回数まで」のパターン
010. 「何でもいい1文字を指定回数以上」のパターン
011. 「何でもいい1文字を指定回数以下」のパターン
012. 「何でもいい1文字を指定回数以上で、指定回数以下」のパターン
013. 「数字を0回以上」のパターン
014. 「数字を1回以上」のパターン
015. 「数字を0回か1回」のパターン
016. 「数字を指定回数まで」のパターン
017. 「数字を指定回数以上」のパターン
018. 「数字を指定回数以下」のパターン
019. 「数字を指定回数以上で、指定回数以下」のパターン
020. 「英数字を0回以上」のパターン
021. 「英数字を1回以上」のパターン
022. 「英数字を0回か1回」のパターン
023. 「英数字を指定回数まで」のパターン
024. 「英数字を指定回数以上」のパターン
025. 「英数字を指定回数以下」のパターン
026. 「英数字を指定回数以上で、指定回数以下」のパターン
027. 「空白文字(スペース)を0回以上」のパターン
028. 「空白文字(スペース)を1回以上」のパターン
029. 「空白文字(スペース)を0回か1回」のパターン
030. 「空白文字(スペース)を指定回数まで」のパターン
031. 「空白文字(スペース)を指定回数以上」のパターン
032. 「空白文字(スペース)を指定回数以下」のパターン
033. 「空白文字(スペース)を指定回数以上で、指定回数以下」のパターン
034. 「自分で作ったパターンを0回以上」のパターン
035. 「自分で作ったパターンを1回以上」のパターン
036. 「自分で作ったパターンを0回か1回」のパターン
037. 「自分で作ったパターンを指定回数まで」のパターン
038. 「自分で作ったパターンを指定回数以上」のパターン
039. 「自分で作ったパターンを指定回数以下」のパターン
040. 「自分で作ったパターンを指定回数以上で、指定回数以下」のパターン
複数文字のマッチ
041. 「どれかの複数文字にマッチ」のパターン
042. 「パターンの範囲を作る」のパターン
043. 「指定した文字”以外”のマッチ」のパターン
複数文字の繰り返し
044. 「複数文字のパターンを0回以上」のパターン
045. 「複数文字のパターンを1回以上」のパターン
046. 「複数文字のパターンを0回か1回」のパターン
047. 「複数文字のパターンを指定回数まで」のパターン
048. 「複数文字のパターンを指定回数以上」のパターン
049. 「複数文字のパターンを指定回数以下」のパターン
050. 「複数文字のパターンを指定回数以上で、指定回数以下」のパターン
051. 「自分で作ったパターンの範囲を0回以上」のパターン
052. 「自分で作ったパターンの範囲を1回以上」のパターン
053. 「自分で作ったパターンの範囲を0回か1回」のパターン
054. 「自分で作ったパターンの範囲を指定回数まで」のパターン
055. 「自分で作ったパターンの範囲を指定回数以上」のパターン
056. 「自分で作ったパターンの範囲を指定回数以上で、指定回数以下」のパターン
文字列の場所指定
057. 「文字列の最初」のパターン
058. 「文字列の最後」のパターン
059. 「文字列の間」のパターン
正規表現を深く知る
060. 最長マッチで検索する
061. 最短マッチで検索する
062. キャプチャを使う
063. 複数のキャプチャを使う
064. キャプチャしないでグループを作る
065. 先読み
066. 否定先読み
※ JavaScriptでは、「後読み」「否定後読み」機能はまだ未実装です。今後を期待!
実践
067. カッコの文字を取得する
068. 数値のみ取得する
069. 小数点三位まで取得する
070. 3桁の数のみ取得する
071. 金額の表示を取得する(簡易版)
072. 金額の表示を取得する(コンマ区切りの少し厳密版)
073. 偶数を取得する
074. 奇数を取得する
075. 5の倍数を取得する
076. 電話番号
077. 日付
078. 時刻
079. 郵便番号
080. クレジットカード番号
081. 一行だけ取得
082. ファイルのディレクトリパスのみ取得
083. ファイルのパスを取得する
084. URLからドメインを取得する
085. URLを取得する
086. URLからハッシュを取得する
087. URLからクエリ全体を取得する
088. URLから一つのクエリを取得する
089. URLから複数のクエリを取得する1
090. URLから複数のクエリを取得する2
091. URLから複数のクエリを取得する3(否定を使う)
092. HTMLタグを取得する
093. HTMLからリンクを取得する
094. HTMLから見出しを取得する
095. HTMLから画像リンクを取得する
096. HTMLからidを取得する
097. HTMLからclassを取得する
098. グローバルサーチ(g)
099. 大文字小文字を区別しない(i)
100. 各行の行頭、行末にマッチさせる(m)
正規表現まとめサイト集
はじめての正規表現 – 初心者向け
サルにもわかる正規表現入門 – 初心者向け
正規表現の構文 – 構文が詳しく書いてある
正規表現パズル – 難しいテクニック満載
JavaScript正規表現メモ。 – JavaScriptでの正規表現使い方
その他怒濤シリーズ
@phi_jp氏の元祖怒濤シリーズに加え、解説しているサイトや、自分が作った怒濤シリーズです。
tmlife – enchant.js 怒涛の 100 tips
tmlife – tmlib.js 怒濤の 100 サンプル!! – Graphics(HTML5 Canvas) 編
楽遊道 – tmlib.js 100 サンプル!! 解説一覧
tmlife – CoffeeScript 入門! 怒濤の 100 サンプル!!
TESTCORDING – node.js 怒濤の50サンプル!! – socket.io編