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?

[Ruby] 正規表現 覚え書き

Posted at

スラッシュで囲むと正規表現オブジェクトに

/正規表現/ #=> スラッシュで囲むと正規表現オブジェクトが作成される

p /a/.class #=> Regexp

便利なサイト

メタ文字まとめ

. ... 任意の1文字

irb
/./

a #=> match
b #=> match
cc #=> match

[] ... []内のいずれか1文字(OR)

/[金銀]の指輪/

金の指輪 #=> match
銀の指輪 #=> match
銅の指輪 #=> unmatch

[^] ... []内のいずれか1文字以外の、任意の1文字([]の否定)

/[^金銀]の指輪/

金の指輪 #=> unmatch
銀の指輪 #=> unmatch
銅の指輪 #=> match

- ... 範囲

/[A-Z]/

B #=> match
a #=> unmatch
 #=> unmatch

\d ... 半角数字

/\d/

1 #=> match
a #=> unmatch

大文字Dにすると逆(半角数字以外)になる

\w ... 半角英数字とアンダースコア

/\w/

1 #=> match
a #=> match
 #=> unmatch

大文字Wにすると逆(半角英数字とアンダースコア以外)になる

^, $ ... 先頭と末尾

/^cat$/

cat #=> match
supercat #=> unmatch
catman #=> unmatch

| ... 2文字以上のOR

/デッド|アライブ/

デッド #=> match
アライブ #=> match
サバイブ #=> unmatch

* ... 直前の文字が0回以上続く

/「.*」/

こんにちは #=> match
こんにちは #=> unmatch

+ ... 直前の文字が1回以上続く

/ど+ーすんの/

どどどどどーすんの #=> match
どーすんの #=> match
どないすんの #=> unmatch

? ... 直前の文字があってもなくても

/https?/

http #=> match
https #=> match
ftp #=> unmatch

{n} ... 直前の文字が n 回続く

/ボ{3}ーボ・ボーボ{2}/

ボボボーボボーボボ #=> match
ボボーボボーボボ #=> unmatch

{n, m} ... 直前の文字が n 回以上 m 回以下続く

/\w{7,31}/

passw0rd #=> match
hoge #=> unmatch

*? ... マッチするもので最も短い範囲にマッチ

>> text = "<h1>Hello</h1>"
=> "<h1>Hello</h1>"

>> p text.scan(/<.*?>/)
["<h1>", "</h1>"]
=> ["<h1>", "</h1>"]

() ... グループ化して、複数の文字をまとめられる

/(ライス|バースデー)ケーキ/

ライスケーキ #=> match
バースデーケーキ #=> match
チーズケーキ #=> unmatch

\n ... n 番目のグループを参照する

/人間(讃歌)は勇気の\1/

人間讃歌は勇気の讃歌 #=> match
/(ド)級の(リトライ)、\1\2/

ド級のリトライドリトライ #=> match

A(?=B) ... 後ろにBがついている時だけAでマッチ

>> text = "120円 100個 70回"
=> "120円 100個 70回"
>> text.scan(/\d+(?=円)/)
=> ["120"]

否定版: A(?!B) ... 後ろにB以外がついている時だけAでマッチ

(?<=A)B ... 前にAがついている時だけBでマッチ

>> text = "かわいいいぬ かわいいねこ ゆかいななかま"
=> "かわいいいぬ かわいいねこ ゆかいななかま"

>> text.scan(/(?<=かわいい)[ぁ-ん]+/)
=> ["いぬ", "ねこ"]

否定版: (?<!A)B ... 前にA以外がついている時だけBでマッチ

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?