事例 perl表現 解説
Grep または grep [Gg]rep []は、キャラクタクラスと言い、ブラケット(角括弧)で囲んだ文字のいずれかひとつとマッチすればマッチしたと判断
英単語 [a-zA-Z][a-zA-Z]* [](ブラケット)の中に「-」(マイナス)があれば、範囲指定を意味する
[亜-K] は、漢字にマッチ
[ァ-ヶ] 全角カタカナにマッチ
[ぁ-ん] 全角ひらがなにマッチ
* は、直前文字の0回以上の繰り返し
変数名や関数名 [a-zA-Z0-9_-]+
または\w+
+ は、直前のパターンの1回以上の繰り返し
\wは、半角の英数文字とアンダースコア(_下線)を示す、文字クラス エスケープ シーケンス(特殊変数)
2004/4/17 の形式の日付 [0-9]{4}/[0-9]{1,2}
/[0-9]{1,2}
ブレース{n}で直前のパターンをn回繰り返し、
{n,}だとn回以上、
{m,n}で m回以上、n回以下にマッチ
[0-9]は、特殊変数 \dでも良い
郵便番号
123-1234
([0-9]{3})-([0-9]{4}) ()は、パターンのグループ化。グループ化した部分の優先順位が高くなるので、パーレン(まる括弧)の中を評価した後に全体を評価します。
パーレンの中のパターンがバッファに保存できるので、置換に用います
空白行 ^$
または^\n
または^\r
(ファイルの改行指定方法で異なる)
^ カレットは、文字列(行)の最初に、
$ は、文字列(行)の最後にマッチする。
\nは、ニューライン = LF(\x0a) 改行(ラインフィード)
\r:リターン = CR(\x0d) 改行(キャリッジリターン)
スペースを含む空白行 ^\s*$ \s:スペース文字 = 半角スペース(\x20) , タブ文字(水平タブ(\x09),垂直タブ(\x0b)) , 改行(CR(\x0d),LF(\x0a)) , 改ページ(\x0c)
\S:スペース文字以外
10文字の行 ^.{10}$ . 改行文字以外の任意の1文字
test または TEST test|TEST | は、パターンの論理和で、複数のパターンのいずれか
メイルの宛先やタイトル ^(To|From|Subject
|Date|Cc|Bcc|Fcc|
Received|Sender):
^ 文字列(行)の最初にマッチする。
This is a desk.
This is a book.
のisのマッチ
最長マッチ .*is
最短マッチ .*?is
単語単位は
\b.[^ ]*?is|is
.* は何でも有りを示す。
通常は最長一致のルールが適用される。
? で最短でマッチ。
\b 単語の境界にマッチする。
前後の単語を指定した検索
例:
「情報」と「検索」
情報.*?検索 .* は何でも有りを示す。
? で最短でマッチ
メイルの引用部分 ^ *\>.*$ ^ 文字列(行)の最初にマッチする。
閉じている
ダブルクォーテーション文字列
"("|.[^"]*")
または
".*?"
途中の^は否定
行頭が数字でない行 ^[^0-9].* 途中の^は否定
ダブルクォーテーション
から行末まで
".[^"]*$ $ 文字列(行)の最後にマッチする。
()でくくられた範囲。
3重の入れ子を含む。

右の正規表現および解説は、
サクラエディタ掲示板の「すい」さんの記述から引用させていただきました
\([^()]*
(\([^()]*
(\([^()]*[^()]*\)[^()]*)*
[^()]*\)[^()]*)*
[^()]*\)
↓基本パターン
<[^<>]*>

これで対応する括弧だけにマッチします。
入れ子に対応するための準備として
<[^<>]*[^<>]*>
と変更します。(まだ入れ子非対応。)

で、↑上記の [^<>]* と [^<>]* の間に
(<[^<>]*[^<>]*>[^<>]*)*
という、「( 対応する括弧の組み合わせ+括弧とは無関係な 0字以上の文字列 )が 0回以上繰り返される」
の記述を挿入。↓

<[^<>]*(<[^<>]*[^<>]*>[^<>]*)*[^<>]*>

↑これで2重の括弧に対応。

さらに↑上記の [^<>]* と [^<>]* の間に
(<[^<>]*[^<>]*>[^<>]*)*
という、「( 対応する括弧の組み合わせ+括弧とは無関係な 0字以上の文字列 )が 0回以上繰り返される」の記述を挿入。↓

<[^<>]*(<[^<>]*(<[^<>]*[^<>]*>[^<>]*)*[^<>]*>[^<>]*)*[^<>]*>

↑これで3重の括弧に対応。
10182
11128
20080
30020
90180
で80で終わらない行
^.*([^8].|[^0])$ ^ 文字列(行)の最初にマッチする。
$ 文字列(行)の最後にマッチする。
htmlのタグ <(.*?)> * は、直前文字の0回以上の繰り返し
.*は何でも有りを示す。
? で最短でマッチ。
htmlのアンカータグ <[Aa] [^>]*>
cssのコメント /* */ /\*/?([^/]|[^*]/|\n)*\*/