正規表現について
正規表現
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は取り出さない
Author And Source
この問題について(正規表現について), 我々は、より多くの情報をここで見つけました https://qiita.com/Tsuyozo/items/6107017656c4ae1892df著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .