差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
windows:regex [2012/04/14 21:44] – [肯定先読み【(?=~)】] ともやん | windows:regex [2019/08/19 07:23] (現在) – ともやん | ||
---|---|---|---|
行 3: | 行 3: | ||
</ | </ | ||
====== 正規表現とは ====== | ====== 正規表現とは ====== | ||
+ | |||
===== なぞなぞのような要求を実現できる ===== | ===== なぞなぞのような要求を実現できる ===== | ||
< | < | ||
行 16: | 行 17: | ||
</ | </ | ||
エディタで正規表現を利用して該当部分をマークした様子。\\ | エディタで正規表現を利用して該当部分をマークした様子。\\ | ||
- | {{: | + | {{: |
====== 基礎知識 ====== | ====== 基礎知識 ====== | ||
+ | |||
===== メタキャラクタとリテラル ===== | ===== メタキャラクタとリテラル ===== | ||
**メタキャラクタ**(meta character)とは、正規表現中で特別な意味を持つ文字のことである。**リテラル**(literal)は通常の文字のことである。 | **メタキャラクタ**(meta character)とは、正規表現中で特別な意味を持つ文字のことである。**リテラル**(literal)は通常の文字のことである。 | ||
行 27: | 行 29: | ||
平成 | 平成 | ||
[1-9]年 | [1-9]年 | ||
+ | |||
===== 文字クラス【[]】 ===== | ===== 文字クラス【[]】 ===== | ||
**文字クラス**とは、複数の文字を「[」と「]」のメタキャラクタで囲んだもののことで、複数の文字の**__1文字__**とマッチする。動作はSQLなどのLIKE文とほぼ同じである。 | **文字クラス**とは、複数の文字を「[」と「]」のメタキャラクタで囲んだもののことで、複数の文字の**__1文字__**とマッチする。動作はSQLなどのLIKE文とほぼ同じである。 | ||
行 46: | 行 49: | ||
| < | | < | ||
*1 abc5 abc 2abcにはマッチしない。 | *1 abc5 abc 2abcにはマッチしない。 | ||
+ | |||
===== 文字クラスの略記法 ===== | ===== 文字クラスの略記法 ===== | ||
文字クラスには、以下の略記法が存在する。(**全角もマッチするので注意!!**) | 文字クラスには、以下の略記法が存在する。(**全角もマッチするので注意!!**) | ||
行 61: | 行 65: | ||
| a.c | aで始まり任意の1文字がありcで終わる | abc a@c aBcなど | | | a.c | aで始まり任意の1文字がありcで終わる | abc a@c aBcなど | | ||
| xl. | xlで始まり任意の1文字で終わる | xls xla xltなど | | | xl. | xlで始まり任意の1文字で終わる | xls xla xltなど | | ||
+ | |||
===== 選択【|】 ===== | ===== 選択【|】 ===== | ||
「|」は複数の選択肢のいづれかにマッチするメタキャラクタである。 | 「|」は複数の選択肢のいづれかにマッチするメタキャラクタである。 | ||
行 66: | 行 71: | ||
| < | | < | ||
| < | | < | ||
+ | |||
===== 量指定子、範囲指定繰り返し制御【? | ===== 量指定子、範囲指定繰り返し制御【? | ||
**量指定子**は、その直前にある正規表現で指定された要素が繰り返される事を意味する。 | **量指定子**は、その直前にある正規表現で指定された要素が繰り返される事を意味する。 | ||
行 83: | 行 89: | ||
===== 位置指定子【^$\b\B(? | ===== 位置指定子【^$\b\B(? | ||
- | |||
^ 位置指定子 ^ 意味 ^ | ^ 位置指定子 ^ 意味 ^ | ||
| %%^%% | 行の先頭 | | | %%^%% | 行の先頭 | | ||
行 95: | 行 100: | ||
==== 肯定先読み【(? | ==== 肯定先読み【(? | ||
- | |||
^正規表現 | ^正規表現 | ||
- | |.+(? | + | |.+(? |
< | < | ||
<span class=" | <span class=" | ||
行 106: | 行 109: | ||
==== 否定先読み【(? | ==== 否定先読み【(? | ||
- | |||
^正規表現 | ^正規表現 | ||
- | |ねこ(? | + | |ねこ(? |
< | < | ||
<span class=" | <span class=" | ||
ねこミミ< | ねこミミ< | ||
<span class=" | <span class=" | ||
+ | </ | ||
+ | |||
+ | ==== 肯定戻り読み【(?< | ||
+ | ^正規表現 | ||
+ | |%%(?< | ||
+ | < | ||
+ | ねこ< | ||
+ | ねこ< | ||
+ | ねこ< | ||
+ | </ | ||
+ | |||
+ | ==== 否定戻り読み【(?< | ||
+ | ^正規表現 | ||
+ | |(?< | ||
+ | < | ||
+ | くろねこ< | ||
+ | とら< | ||
+ | しろ< | ||
</ | </ | ||
行 132: | 行 151: | ||
20120201-20120229_access_log\\ | 20120201-20120229_access_log\\ | ||
20120301-20120331_access_log\\ | 20120301-20120331_access_log\\ | ||
+ | |||
+ | ===== 置換 ===== | ||
+ | **dir /B** 出力から **JSON** を生成する例。\\ | ||
+ | < | ||
+ | ^([a-z\.\-_]*) | ||
+ | </ | ||
+ | {{: | ||
====== 応用編 ====== | ====== 応用編 ====== | ||
+ | |||
===== 0001/ | ===== 0001/ | ||
< | < | ||
(0{3}[1-9]|\d{2}[1-9]\d|\d[1-9]\d{2}|[1-9]\d{3})/ | (0{3}[1-9]|\d{2}[1-9]\d|\d[1-9]\d{2}|[1-9]\d{3})/ | ||
</ | </ | ||
+ | |||
===== 00: | ===== 00: | ||
< | < | ||
([0-1]\d|2[0-3]): | ([0-1]\d|2[0-3]): | ||
</ | </ | ||
+ | |||
===== 全角文字に一致 ===== | ===== 全角文字に一致 ===== | ||
< | < | ||
[^ -~。-゚] | [^ -~。-゚] | ||
</ | </ | ||
+ | |||
===== 文字列を含まない行に一致 ===== | ===== 文字列を含まない行に一致 ===== | ||
< | < |