エディター(Atom)を使って、正規表現の勉強をしてみた！前編

正規表現とは？

**文字列の検索パターンを表現するための技法**

正規表現は基礎として必要になってくる部分なので、しっかり勉強してきちんとした知識を身につけたいと思います。
また、正規表現を使いこなせば作業が劇的に捗るみたいなので、そこも楽しみにしながら学習していきます。

環境　*windows10pro*
エディター　*Atom*

--------
Atomエディターで正規表現を使うためには、
>オプションバーの「検索(I)」をタップし、開いたタブの「検索...」をタップすると、出てきます。
![コメント 2020-09-04 092050.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/0aa76441-4e44-cb4d-429f-bb6bc6428c63.jpeg)

**もしくは、**

>**Ctrl + Fキー (windowsの場合)**

で、出てきます。

検索パネルが出てきたら検索オプションの"**正規表現**"と"**大文字小文字を区別する**"のアイコンを押してください。※正規表現では大文字小文字を区別するのが一般的
![コメント 2020-09-04 090925.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/9b563f44-4357-a765-b02c-fefb32e96736.jpeg)
---------


#####これで、Atomエディターで正規表現を使う準備は完了です。


##早速、正規表現にトライ

学習方法は[ドットインストール](https://dotinstall.com/) で動画視聴しながら、わからないところはネットで検索してやっていきます。


##リテラル

検索パターンで"文字そのもの"を使う
![コメント 2020-09-03 085816.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/5ec3f1c1-c717-5739-3cdf-8317c961b000.jpeg)

##メタ文字

+ **「.」**


「.at」と検索することによって「.」のあとに「at」と続く文字だけを検索することができる
![コメント 2020-09-03 085434.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/55f517c0-b6d0-c42a-5dbf-2616248d081e.jpeg)

+ **「\d」 「\w」 「\s」**


1. 「\d」を使って電話番号を検索
**電話番号の桁数と同じ文字数分の「\d」を入力して検索**
![コメント 2020-09-03 094006.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/ca739369-0dbe-a5f8-eeb3-a276dfa3ef18.jpeg)

2. 「\w」を使って名前を検索
"tanaka"を検索
**先頭の文字"t"を入れたあとにその後の文字分の「\w」を入力して検索**
![コメント 2020-09-03 094611.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/98982312-7c9c-5b6b-5e4a-42d9cfb3ee1b.jpeg)
*※それぞれ大文字に変えると「～でない」という意味になる。例えば、「\D」とすると "「\d」以外のもの " ということになる*



+ **量指定子**

直前の文字をいくつ繰り返すかを指定する
**\d{}を使って、電話番号を検索**
![コメント 2020-09-04 090423.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/4568b38b-c0a2-d9a2-df08-985f0d5fa6c6.jpeg)

+ **「?」「+」「*」**

**「?」**
ハイフンありとハイフンなしの電話番号があり、どちらにもマッチする検索結果を得たいとき
1行目の「-」を0以上1以下であると解釈できるので、「?」を使ってあげて検索
![コメント 2020-09-04 104507.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/2f0f78ee-3a6f-981e-2aee-9a5bdcc95585.jpeg)

**「+」**
先頭に何らかの文字が入っていた場合
文字の検索なので「\w」を使い、文字が一個以上あるという解釈ができるので「+」を使う
![コメント 2020-09-04 105013.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/6f703af7-cda7-24ad-5ec0-26455519dedb.jpeg)

**「*」**
「\w*」と入力すれば、これらすべてとマッチすることができる
![コメント 2020-09-04 105437.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/a42ee473-3037-f453-443d-555c6d55efab.jpeg)

+ **量指定子の注意点**

ダブルクォーテーションで囲まれたそれぞれの単語を検索したい場合
![コメント 2020-09-04 111435.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/e4bbba47-d041-3d96-d680-3ffa2fe165a4.jpeg)
このように記述すると、1行全部にマッチしてしまう


![コメント 2020-09-04 111600.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/dcfd45c8-04ff-1d0f-91bf-970ee75a198b.jpeg)
「?」を入れることで、それぞれの単語とマッチすることができる

+ **アンカー**

**「^」**
行の先頭を検索
![コメント 2020-09-04 113558.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/e7dc4748-0416-6466-84ee-223cdd1fcef4.jpeg)

**「$」**
行の末尾を検索
![コメント 2020-09-04 113506.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/91c04495-8c29-a217-a9c1-a00d27c09e00.jpeg)

**「\b」**
\bで囲んで"yamato"と入力すると、4行目だけ検索できる(文字が被っている時に使う)
![コメント 2020-09-04 112927.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/7eea5230-db42-4388-5048-3752a8564c65.jpeg)

##メタ文字のエスケープ方法
例 : 文中にある「.」を検索したいとき
「\」を入れてあげることによってメタ文字の「.」をリテラルの「.」だと指定することができる
※文中に「\」が含まれていて「\」を検索したい場合は「\\」としてあげればよい
![コメント 2020-09-03 091254.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619833/df8ab3d1-38d9-de6f-9e6e-34fbcca2e133.jpeg)



#終わりに
長くなりそうなので、前編と後編に分けて書きます。
参考にしたサイトはこちらに
      ↓↓

1.  [ドットインストール](https://dotinstall.com/)

2. メタ文字はたくさんの種類があります。[こちらのサイト](https://www.megasoft.co.jp/mifes/seiki/meta.html)がとてもわかりやすくまとめてありました。