| 正規表現 |
|---|
| 例 |
| メタ文字 |
| 練習問題 |
正規表現とは、シェル、grep、awk、perl などで使用するパターン適合のための表記法です。
| 正規表現 | 説 明 | 例 |
|---|---|---|
| c | メタ文字でない任意の文字 | Mon |
| \c | メタ文字は前に'\'を付加すればその文字自身に適合する メタ文字には、'*'、'?'、'.'、'+'、'\'、'['、']'、'('、')'、'^'、'$'、'|'がある |
\\ |
| ^ | 行頭に適合 | ^SunOS |
| $ | 行末に適合 | HP\-UX$ |
| . | 任意の1文字に適合 | . |
| [S] | セット S に含まれる任意の1文字に適合 | [a-zA-Z] |
| [^S] | セット S に含まれない任意の1文字に適合 | [^a-zA-Z] |
| [c1-c2] | c1 から c2 の任意の1文字に適合 | [0-9] |
| r | r に適合する任意の文字列 | ^[a-zA-Z_]+$ |
| r1| r2 | r1 か r2に適合する任意の文字列 | Mon|Tue|Wed|Thu|Fri|Sat |
| (r1) (r2) | r1 に適合し r2に適合する文字列 | ([a-zA-Z])([a-zA-Z_0-9]*) |
| (r)* | r に適合する文字列の0個以上の連接 | ([a-zA-Z_])* |
| (r)+ | r に適合する文字列の1個以上の連接 | ([a-zA-Z_])+ |
| (r)? | r に適合する文字列の0または1個の文字列 | ([a-zA-Z_])? |
| (r) | r に適合する任意の文字列 | ([a-zA-Z_]*) |
| r{n} | r が n 回繰り返す任意の文字列 | ([a-zA-Z_]){10} |
| r{n,} | r が n 回以上繰り返す任意の文字列 | ([a-zA-Z_]){10,} |
| r{,m} | r が 0 回以上 m 回以下繰り返す任意の文字列 | ([a-zA-Z_]){,10} |
| r{n,m} | r が n 回以上 m 回以下繰り返す任意の文字列 | ([a-zA-Z_]){1,10} |
c = 文字
r = 正規表現文字列
S = セットを表す正規表現
n,m = 数値
![]() |
![]() |
| .* | 任意の文字列 |
|---|---|
| [0-9] | 数字1文字 |
| [0-9]{4} | 数字4文字 |
| [0-9]+ | 数字の繰り返し |
| [^0-9] | 数字以外の1文字 |
| [a-zA-Z] | 半角アルファベット1文字 |
| ([a-z][A-Z]){2,} | 小文字大文字が2回以上繰り返されるパターン |
| ^$ | 空行(改行のみの行) |
| ^ +.* | 先頭に1個以上の半角空白を含む行 |
| ^09:00(.)*oracle | 先頭に09:00 を含みかつ途中に oracle を含む行 |
![]() |
![]() |
| メタ文字 | 説 明 | 例 |
|---|---|---|
| ^ | 行頭を表す。また [ ] の中で使用された場合は否定を表す。 | ^Head |
| $ | 行末を表す | Tail$ |
| . | 改行以外の任意の1文字を表す | [.] |
| * | 0回以上の繰り返しを表す | [a-z]*:英小文字 0 以上 |
| + | 1回以上の繰り返しを表す | [a-z]+:英小文字 1 以上 |
| ? | 0回または1回の繰り返しを表す | [a-z]?:英小文字 0 か 1 |
| [ ] | セットを表す | [a-z]+:英小文字 1 以上 |
| ( ) | 正規表現をグループ化する | (a|b):a か b |
| | | 選択を表す | (a|b):a か b |
| \ | メタ文字をエスケープする | [0\9\.]+:数値 |
コマンド行から入力できる正規表現は限定されていますが、
以下の条件を満たす正規表現を egrep コマンドで試しましょう。
1,2,3,4 は dmp.c dmp.mk を使います。
詳細正規表現 オーム社 5400
![]() |
![]() |