1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

正規表現について

Last updated at Posted at 2020-04-29

正規表現

grepやfindコマンド使えるようになるためには正規表現(検索したい条件の書き方)も理解していないといけない。正規表現のパターンには、文字を指定する、文字数を指定する、指定した文字の位置を指定するがある。

文字を指定

.を単体で使うと、全ての文字って意味。しかし[]の中に入るとただの文字として認識されてしまう。

[]の中に指定したい文字をいれる→複数いれるとそのうちのどれか一つってこと。また[a-z]にするとaからzの内って意味になる。また~とバックスラッシュがついている場合はa-zなどを略した表現をしている。

[^ ]と頭に^がつくとの指定した文字以外の文字を持つやつってことになる

略語

\dは[0-9]
\sは改行文字を含んだ空白文字
\wは[0-9a-zA-Z_]

また\d{2}にすると\d\dという意味になる。

繰り返し指定

指定した領域の後ろにつけて指示をする

?なら0か1回繰り返す
+なら1回以上繰り返す
*なら0回以上繰り返す
+?なら1回以上繰り返す
*?なら0回以上繰り返す
{min, max}ならば最低でもmin回数、最高でもmax回数繰り返す

位置指定

^なら頭にはって意味
$ならお尻にはって意味
\Aなら頭、\zならお尻

フラグ(パターンマッチ,置換などに使用される)

パターン/g→これでこのパターン全てに対してという意味になる

パターン/i→これでこのパターンでのマッチ,置換では大文字小文字は無視するおいう意味になる

参考文献は正規表現のフラグ

キャプチャ(置換で使う?)

パターンの中で、()で括った部分が、$数字に代入されていく、これを置換のパターン設定で使用する。一つ目のカッコは$1、二つ目のカッコは$2....という風に代入されていく。この$数字を使用して置換をうまく行うことができる。

参考文献はマッチした複数の文字列を取得($1, $2, ..)

後方参照

()で囲った内容を、その場で使用する時は一つ目のカッコの内容は\1、二つ目は\2....で使用する。

(? )

(?<=パターン)→パターンの直後のこと

(?=パターン)→パターンの直前のこと

これを利用してその直前、直後の言葉を得る。
参考文献は初心者歓迎!手と目で覚える正規表現入門・その4(最終回)「中級者テクニックをマスターしよう」

その他

|は()内で使い、orという意味、(abc|def)はabcかdefって意味になる

([])+とかをすると、[]の中身が1回以上繰り返されるという意味になる

\をつけると後ろの部分をエスケープする。例えば、-は-という意味になる。

\bは単語の境界、\baaa\bだとaaaという単語だけを取り出し、waaaは取り出さない

参考文献はLinuxで使う正規表現についてまとめました正規表現のポイント

1
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?