正規表現 |
---|
例 |
メタ文字 |
練習問題 |
正規表現とは、シェル、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
![]() |
![]() |