正規表現 (Regular Expression)
基 本†
| 記号 | 意味 | 用例 |
| ^ | 行の先頭、否定 (状況で使い分け) | ^(だけ書いた場合):全ての行 ← 行頭は全ての行にあるから |
| ^a:a で始まる行(行頭) |
| [^a]:a(小文字の'a')以外の一文字 |
| $ | 行の末尾 | $(だけ書いた場合):全ての行 ← 行末は全ての行にあるから |
| jpg$:行末(この場合は拡張子)が jpgで終わる行 |
| . | 任意の一文字 | ..:任意の2文字の文字列(文字は記号、スペースなど何でも良いが、文字数は2文字) |
| ..a:3文字の文字列で最初の2文字は何でも良いが3文字目は(小文字の) 'a' の文字列 |
| * | (必ず何か文字を指定して)直前の文字の0回以上の繰り返し | a*:'a'、'aa'、'aaa'、だけでなく、'a' がゼロ回=どんな文字でもヒット |
| aa*:a が一文字あることの指定 → 'a'、'aa'、'aaa'、'aaaa' にヒット |
| ? | (必ず何か文字を指定して)直前の文字の 0回、または 1回 の繰り返し | necess?ary:'necesary' または 'necessary' |
| + | (必ず何か文字を指定して)直前の文字の 1回 の繰り返し | [A-Za-z]+アルファベットだけの文字列: |
| [] | [] の中のどれか一文字 | [abc]:'a' or 'b' or 'c' |
| [abc]d:'ad' or 'bd' or 'cd' |
| [^a]b:先頭が 'a' 以外で後ろに 'b' が続く文字 |
| | | 前後の文字(列) | a|b:a または b |
| abc|def:abc または def |
| () | ()内をひとまとまりとして解釈 | sle(e|a)p: sleepまたは sleap |
| {min,max} | 直前の文字のmin 回以上、max 回以下の繰り返し | e{3,5}:eee, eeee, eeeee |
| {min} | 直前の文字のmin 回以上の繰り返し | |
| {,max} | 直前の文字のゼロ回以上、max 回以下の繰り返し | |
posix ブラケット表現†
| 記号 | 意味 | 用例 |
| [[:lower:]] | アルファベットの小文字の文字集合 | [a-z] と同義 |
| [[:upper:]] | アルファベットの大文字の文字集合 | [A-Z] と同義 |
| [[:alpha:]] | アルファベットの文字集合 | [A-Za-z] と同義 |
| [[:digit:]] | 数字の文字集合 | [0-9] と同義 |
| [[:alnum:]] | アルファベットと数字の文字集合 | [[[0-9A-Za-z] と同義 |
| [[:graph:]] | スペース以外の表示可能文字 | [[:alnum:]] + 記号(|、&、* など) |
| [[:blank:]] | 空白文字 | スペース、タブ |
| [[:space:]] | 空白文字 | [[:blank:]] + 改行 |
| [[:print:]] | 表示可能な文字の文字集合 | [[:alnum:]] + [[:space:]] |
| [^[:(定義):]] | ブラケット表現の否定 | |
応用例 (一般)†
応用例 (高級)†
sed 's/^\([^# ]*\) *#.$/\/' (対象ファイル名) | tr -s "\n"
参考 URL†