|
|
目次
正規表現とはなぞなぞのような要求を実現できる文字列の先頭から、半角スペースが0個以上任意の個数続き、 「'」の後にも任意の文字が0個以上任意の個数続く行、 または、改行のみの行を削除したい。
上に記載した例では、ソースからコメント行と空行を削り、実行ステップのみを残したいという要求の例ですが、正規表現と置換を併用する事により簡単に実現することができる。
^( *'.*)*\r\n 基礎知識メタキャラクタとリテラルメタキャラクタ(meta character)とは、正規表現中で特別な意味を持つ文字のことである。リテラル(literal)は通常の文字のことである。
以下の例をメタキャラクタとリテラルに分けると、「[」「-」「]」はメタキャラクタで、「平」「成」「1」「9」「年」はリテラルとなる。 平成 [1-9]年 文字クラス【[]】文字クラスとは、複数の文字を「[」と「]」のメタキャラクタで囲んだもののことで、複数の文字の1文字とマッチする。動作はSQLなどのLIKE文とほぼ同じである。
否定文字クラス【[^]】否定文字クラスとは、文字クラスのメタキャラクタ「[」と「]」の中の先頭に「^」を付加したもので、囲んだ文字とは違う1文字とマッチする。
*1 abc5 abc 2abcにはマッチしない。 文字クラスの略記法文字クラスには、以下の略記法が存在する。(全角もマッチするので注意!!)
任意の文字【.】「.」は任意の1文字にマッチするメタキャラクタである。
選択【|】「|」は複数の選択肢のいづれかにマッチするメタキャラクタである。
量指定子、範囲指定繰り返し制御【?*+{n}{n,}{m,n}】量指定子は、その直前にある正規表現で指定された要素が繰り返される事を意味する。
以下は量指定子の例。
* 「^」は文字クラス([])内では否定文字クラスの意味であるが、正規表現の先頭に置くと「行の先頭」の意味になる。 位置指定子【^$\b\B(?=~)(?!~)(?<=~)(?<!~)】
肯定先読み【(?=~)】
くろねこ 否定先読み【(?!~)】
ねこパンチ 肯定戻り読み【(?<=~)】
ねこパンチ 否定戻り読み【(?<!~)】
くろねこ 後方参照【() \1 \2 ...】
後方参照は()でマッチする文字列を保存しておき、それ以降の正規表現で \1 を使用して後方で参照することができる。
20111201-20111207_access_log 応用編0001/01/01~9999/12/31の日付に一致
(0{3}[1-9]|\d{2}[1-9]\d|\d[1-9]\d{2}|[1-9]\d{3})/(0[1-9]|1[0-2])/(0[1-9]|[12]\d|3[01])
00:00:00~23:59:59の時間に一致([0-1]\d|2[0-3]):([0-5]\d):([0-5]\d) 全角文字に一致[^ -~。-゚] 文字列を含まない行に一致^((?!含まない文字列).)*$ 特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Noncommercial-Share Alike 3.0 Unported
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Copyright © 2007-2011 tomoyan.net 本ページのすべての商標と著作権はそれぞれの所有者に帰属します。 |
Powered by Geeklog ページ作成時間 0.12 秒 |