0
0

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 3 years have passed since last update.

正規表現 メモランダム

Last updated at Posted at 2020-09-01

ドットインストールの学習メモです


##正規表現 

  • 文字列の検索パターンを表現するた目の記法

正規表現で検索する command + f .*をクリック。
スクリーンショット 2020-09-01 9.51.56.png

#リテラル・メタ文字・エスケープ
スクリーンショット 2020-09-01 10.04.51.png

#文字種 \d, \w, \s 検索と置換
スクリーンショット 2020-09-01 10.12.10.png

#量指定子 \d{5}, \w{3}など繰り返しを指定
スクリーンショット 2020-09-01 10.22.11.png

#?, +, * 0以上1以下、 0以上、 1以上でヒットを増やす
スクリーンショット 2020-09-01 10.31.38.png

#? 一番短い文字列にマッチさせる
スクリーンショット 2020-09-01 10.44.17.png

#^, $, \b

  • ^ 行の先頭 ^\d
  • $ 行の末尾 \d$
  • \b 単語の区切り \bseki\b

スクリーンショット 2020-09-01 10.54.11.png

#選択子

[abc|123] abc or 123

example.com
example.net

example\.com|example.net
example\.(com|net)

#文字クラス
[abc] a,b,cのどれか一文字

bat cat hat

bat|cat|hat
(b|c|h)at
[bch]at

#文字クラス内で使えるメタ文字
^ 否定 [の直後[^の場合だけ

bat cat hat eat

[^c]at c以外の一文字の後にat bat hat eat
[^cb]at cb以外の一文字の後にat hat eat

「-」 範囲を意味する。
しかし文字コード表に沿った内容でしか指定できないのが注意。

A1
Q31
N23
E56
L4

[A-F]\d+  A~Fの英字の後に数字一字以上

#文字クラス内のエスケープ文字
文字クラス内で特殊な意味を持つ^ -をエスケープさせる必要がある。

03-2234-5678
03^2234^5678
03.2234.5678
03 2234 5678

^\d{2}[\^\-.]
^\d{2}[-.^ ] 上と同じ
^\d{2}[-.^ ]\d{4}[-.^ ]\d{4} 全てマッチさせるとこうなる

#タブと改行

タブと改行
\t タブ
\n 改行(macOS)
\r\n|\r|\n (全てのos)

改行がめちゃくちゃなファイルの空の改行をなくす。
abc
a
bb
cc
cc

\n+ で検索 改行数が1以上
\n に置換 ただの改行

#キャプチャ (),$1, $2

キャプチャを使って置換

検索
サイト名とurlのリストを
htmlのlinkタグにしておく場合。
サイト名(.+)
カンマとスペースのあるなし ,\s
url (.+)

置換
サイト名は$1
urlは$2で取り出せる。

<a href="$2">$1</a>

#後方参照


3,4,5,6,4,4,5,5,7,8,9,9,

\d,\d
前と後ろの\dが同じか確かめたかった場合
最初の\dを()でキャプチャ。
正規表現の中では、\1,\2などで比べる。

(\d),\1

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?