正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

20
正規表現 しくなる ナーバ @Naba0123

Transcript of 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

Page 1: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

正規表現が楽しくなる話 ナーバ (@Naba0123)

Page 2: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

自己紹介

• ナーバ @Naba0123

• 趣味 C# / Web 系開発 / DTM

• 仕事 組み込み 系(新卒) 転職したい

• 冬コミ申し込みました

(オリジナルソロピアノCD)

• アークスフェス楽しかった

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 2

4gamer.net

Page 3: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

正規表現(好き|嫌い)ですか?

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 3

Page 4: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

正規表現が嫌いな人

•言語によって拡張表現が違ってややこしい

•思った通りにパターンマッチしてくれない

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 4

Page 5: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

正規表現を図示すると

わかりやすい!!

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 5

Page 6: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

正規表現 楽しい!!

✌ (‘ω’ ) ✌三 ✌ (‘ω’) ✌三✌ ( ‘ω’) ✌

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 6

Page 7: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

今回紹介するもの

•連接 プロ生ちゃん

•分岐 (プロ|ニコ)生ちゃん

•繰り返し プロ生ちゃん(マジ天使)*

•何か一文字 プロ.ちゃん

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 7

Page 8: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

連接

• RE = プロ生ちゃん

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 8

プ ロ start 生 ち ゃ ん end

start プロ生ちゃん end

Page 9: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

分岐

• RE = (プロ|ニコ)生ちゃん

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 9

start end 生ちゃん

ニコ

プロ

Page 10: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

繰り返し

• RE = プロ生ちゃん(マジ天使)*

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 10

start end マジ天使 プロ生ちゃん

Page 11: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

何か一文字

• RE = プロ .ちゃん

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 11

start end プロ . ちゃん

Page 12: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

役に立つ例

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 12

Page 13: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

プロ生ちゃんのあいまい検索

• RE = (プロ|プロ).*生 (ちゃん|くん)

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 13

start end

プロ

.

ちゃん

くん

プロ

Page 14: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

プロ生ちゃんのあいまい検索

• RE = (プロ|プロ).*生 (ちゃん|くん)

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 14

• プリ生ちゃん

• プログラミング生ちゃん

• プロ生くん

• プロフェッショナル生くん

• プロ生ちゃん

• プログラミングちゃん

• プリンちゃん

• ConoHaちゃん

Page 15: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

プロ生ちゃんのあいまい検索

• RE = (プロ|プロ).*生 (ちゃん|くん)

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 15

• プリ生ちゃん

• プログラミング生ちゃん

• プロ生くん

• プロフェッショナル生くん

• プロ生ちゃん

• プログラミングちゃん

• プリンちゃん

• ConoHaちゃん

Page 16: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

ログファイル抽出

• RE = log- .*-20150(1|2|3|4|5|6).*¥.log

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 16

• log-A-201501.log

• log-PRO-20150610.log

• log-(1.2.3)-201503DMM.log

• log-プロ生-201502.log

• log-.*-201504...log

• log--201501.log

• log-天使-2015087天使.log

• ConoHaちゃん

Page 17: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

ログファイル抽出

• RE = log- .*-20150(1|2|3|4|5|6).*¥.log

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 17

• log-.*-201504...log

• log--201501.log

• log-天使-2015087天使.log

• ConoHaちゃん

• log-A-201501.log

• log-PRO-20150610.log

• log-(1.2.3)-201503DMM.log

• log-プロ生-201502.log

Page 18: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

まとめ

•基本的な構文を覚えれば、応用でなんとでもなる

•自由自在に文字列の検索を行えるようになる

•日常生活の中で、繰り返す文字列が*にしか見えなくなった

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 18

Page 19: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

正規表現 楽しい!!

✌ (‘ω’ ) ✌三 ✌ (‘ω’) ✌三✌ ( ‘ω’) ✌

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 19

Page 20: 正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回

おわり

プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 20