正規表現が楽しくなる話 - 8/29 プログラミング生放送勉強会 第35回
TRANSCRIPT
正規表現が楽しくなる話 ナーバ (@Naba0123)
自己紹介
• ナーバ @Naba0123
• 趣味 C# / Web 系開発 / DTM
• 仕事 組み込み 系(新卒) 転職したい
• 冬コミ申し込みました
(オリジナルソロピアノCD)
• アークスフェス楽しかった
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 2
4gamer.net
正規表現(好き|嫌い)ですか?
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 3
正規表現が嫌いな人
•言語によって拡張表現が違ってややこしい
•思った通りにパターンマッチしてくれない
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 4
正規表現を図示すると
わかりやすい!!
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 5
正規表現 楽しい!!
✌ (‘ω’ ) ✌三 ✌ (‘ω’) ✌三✌ ( ‘ω’) ✌
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 6
今回紹介するもの
•連接 プロ生ちゃん
•分岐 (プロ|ニコ)生ちゃん
•繰り返し プロ生ちゃん(マジ天使)*
•何か一文字 プロ.ちゃん
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 7
連接
• RE = プロ生ちゃん
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 8
プ ロ start 生 ち ゃ ん end
start プロ生ちゃん end
分岐
• RE = (プロ|ニコ)生ちゃん
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 9
start end 生ちゃん
ニコ
プロ
繰り返し
• RE = プロ生ちゃん(マジ天使)*
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 10
start end マジ天使 プロ生ちゃん
何か一文字
• RE = プロ .ちゃん
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 11
start end プロ . ちゃん
役に立つ例
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 12
プロ生ちゃんのあいまい検索
• RE = (プロ|プロ).*生 (ちゃん|くん)
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 13
start end
プロ
.
ちゃん
くん
プロ
生
プロ生ちゃんのあいまい検索
• RE = (プロ|プロ).*生 (ちゃん|くん)
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 14
• プリ生ちゃん
• プログラミング生ちゃん
• プロ生くん
• プロフェッショナル生くん
• プロ生ちゃん
• プログラミングちゃん
• プリンちゃん
• ConoHaちゃん
プロ生ちゃんのあいまい検索
• RE = (プロ|プロ).*生 (ちゃん|くん)
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 15
• プリ生ちゃん
• プログラミング生ちゃん
• プロ生くん
• プロフェッショナル生くん
• プロ生ちゃん
• プログラミングちゃん
• プリンちゃん
• ConoHaちゃん
ログファイル抽出
• 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ちゃん
ログファイル抽出
• 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
まとめ
•基本的な構文を覚えれば、応用でなんとでもなる
•自由自在に文字列の検索を行えるようになる
•日常生活の中で、繰り返す文字列が*にしか見えなくなった
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 18
正規表現 楽しい!!
✌ (‘ω’ ) ✌三 ✌ (‘ω’) ✌三✌ ( ‘ω’) ✌
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 19
おわり
プログラミング生放送勉強会 第35回@株式会社 DMM.com ラボ @Naba0123 20