====== 05 Bash 正規表現 ======
記号 意味
. 改行文字以外の任意の1文字
* 直前の1文字の0回以上の繰り返しに一致。直前の文字は正規表現でも構わない
^ 行の先頭
$ 行の末尾
[ ] かっこ内の任意の1文字に一致。ハイフン(-)で範囲指定もできる
[^ ] かっこ内の任意の1文字に不一致。ハイフン(-)で範囲指定もできる
\+ 直前の文字の1個以上の繰り返しに一致
\? 直前の文字の0または1文字に一致
\{n\} 直前の文字のn個の繰り返しに一致
\{n,\} 直前の文字のn個以上の繰り返しに一致
\{,m\} 直前の文字のm個以下の繰り返しに一致
\{n,m\} 直前の文字のn個以上,m個以下の繰り返しに一致
pattern1\|pattern2 pattern1またはpattern2のいずれかに一致
\(pattern\) patternをグループ化する。マッチした内容は参照できる
\ 正規表現に使われる記号を普通の文字として扱う
記号 意味
Hogege Hogegeに一致
[0-9] 1文字の数字に一致
[a-z] 1文字の小文字アルファベットに一致
[A-Z] 1文字の大文字アルファベットに一致
[0-9a-zA-Z] 1文字の数字またはアルファベットに一致
[0-9]\{4\}/[0-9]\{1,2\}/[0-9]\{1,2\} yyyy/mm/ddに一致(mmとddは1文字でもよい)。ただし,sedの置換などでは/記号を\/とエスケープする必要がある
^pattern$ 文字列patternだけを含む行
[Gg]rep Grepまたはgrep に一致
^[^0-9] 行頭が数字でないもの
^.\{10\}$ 10文字の行
test\|TEST testまたはTEST
Woo* Woo,Wooo....に一致
[:alnum:](英数字[0-9A-Za-z]),
[:alpha:](英字[A-Za-z]),
[:cntrl:](制御文字[\000-\037\177]),
[:digit:](数字[0-9]),
[:graph:](グラフ文字[\041-\176]),
[:lower:](英小文字[a-z]),
[:print:](印刷可能文字[\040-\176]),
[:punct:](記号),
[:space:](空白文字[ \t\n\r\v\f]),
[:upper:](英大文字[A-Z]),
[:xdigit:](16進数字[0-9A-Fa-f])
{{tag>bash}}