tapitapi’s blog

1日1杯タピオカ!エンジニア

【ruby】Rubularで正規表現練習 第二回

前回、Regexの第一回をやったので、今回はその続き!

 

(一覧->*第一回第二回第三回第四回)

 

前回は省いたのですが、基本として、RubyRegexはスラッシュで囲みます。

たとえば前回の[abc]なら、/[abc]/で正規表現ですよ!という意味になります。

 

Rubularでは//は省いて書いてOK!

 

rubular.com

 

今回はQuick Regex Referenceの二段目をやっていきます

. :Any single character (一文字。どんなものでも)
\s :Any whitespace character(空白文字)
\S :Any non-whitespace character (空白文字以外)
\d :Any digit (数字)
\D :Any non-digit (数字以外)
\w :Any word character (letter, number, underscore) (文字)
\W :Any non-word character (文字以外)
\b :Any word boundary (単語の境界)

 

1. ドット(.) 

Regex: /苗字:../

テストサンプル:

苗字:佐藤

苗字:岸

苗字:小山田 

f:id:kayo445:20200212205247j:plain

苗字の二文字目までがマッチしています!(一文字だとマッチしない)

 

2.\s 

Regex:/苗字:..\s名前:../

テストサンプル:

苗字:佐藤 名前:和真

苗字:佐藤名前:和真

苗字:佐藤 名前:和真 (全角スペース)

 

f:id:kayo445:20200212205758j:plain

半角スペースが\sの部分で入っているもののみマッチ

 

3.\S

Regex:/苗字:..\S名前:../

テストサンプル:

苗字:佐藤 名前:和真

苗字:佐藤名前:和真

苗字:佐藤 名前:和真 (全角スペース)

 

f:id:kayo445:20200212205433j:plain

全角スペースは空白文字以外と認識されるのですね!!

 

4.\d

 これは[0-9]とおなじですね!

Regex:/^0[89]0-\d\d\d\d-\d\d\d\d$/

テストサンプル:

080-1234-5678

090-1234-5678

080-1234-567890

080-dogs-cats

f:id:kayo445:20200212205505j:plain
 

 

5.\D

 これは[^0-9]とおなじですね!

Regex:/^0[89]0-\D\D\D\D-\D\D\D\D$/

テストサンプル:

080-1234-5678

090-1234-5678

080-1234-567890

080-dogs-cats

f:id:kayo445:20200212205524j:plain

 

6.\w

英語と数字。日本語や記号はNG

Regex:/氏名:\w\w\w\w/

テストサンプル:

氏名:初音ミク

氏名:1234

氏名:MIKU

氏名:123!

f:id:kayo445:20200212205541j:plain

 

7.\W

英語と数字以外。(日本語や記号、スペースなど)

Regex:/氏名:\W\W\W\W/

テストサンプル:

氏名:初音 ミク

氏名:1234

氏名:MIKU

氏名:123!

f:id:kayo445:20200212205612j:plain

 

8.\b

ここまでで、ひとつの単語だよ!という印。スペースやカンマ(,)、ビックリマークなどで仕切られていたらマッチします

 

Regex:/\b初音\b/

テストサンプル:

初音 ミク

初音ミク

初音,ミク

ミク初音

ミク!初音

 f:id:kayo445:20200212205628j:plain

 

Regex referenceもあと残り、一列!!次回で最終回です ^^

今日はここまで!

 

おやすみなさいいぃぃぃ