KEMBAR78
悪いRegexと良いregexと最良regex | PPTX
自己紹介
名前:ディン・ズイ・タイン
年齢:23
生年: 1992年12月05日
趣味: ゲーム、漫画、プログラミング
専門:エンジニア
悪いREGEXと良いREGEX
と最良REGEX
発表の内容
1. REGEXとは
2. 良いREGEXと悪いREGEX
3. マッチする入力とマッチしない入力
4. 良いREGEXと悪いREGEXの比較
5. 最良REGEX
6. 最後に
REGEXとは
正規表現(RegExp/regex)とは、文字列のパターンを表現する表記法
/pattern/
良いREGEXと悪いREGEX
[2016-05-02T16:05:18 #92430] INFO -- : Served asset /navi/hu-0005-03/style.css - 304
Not Modified (1ms)
必要な情報
時間: 2016-05-02T16:05:18 #92430
種類: INFO
情報: Served asset /navi/hu-0005-03/style.css - 304 Not Modified (1ms)
1. [(.*)]s+(.*)s--s:s+(.*)
2. [([12]d{3}-[01]d-[0-3]dT[0-2]d:[0-6]d:[0-6]d +#d+)]s+(.*)s--s:s+(.*)
良いREGEXと悪いREGEX
[2016-05-02T16:05:18 #92430] INFO -- : Served asset /navi/hu-0005-03/style.css - 304
Not Modified (1ms)
必要な情報
時間: 2016-05-02T16:05:18 #92430
種類: INFO
情報: Served asset /navi/hu-0005-03/style.css - 304 Not Modified (1ms)
1. [(.*)]s+(.*)s--s:s+(.*)
2. [([12]d{3}-[01]d-[0-3]dT[0-2]d:[0-6]d:[0-6]d +#d+)]s+(.*)s--s:s+(.*)
Regex pattern は長ければ長いほど良いです。
マッチする入力とマッチしない入力
1. [(.*)]s+(.*)s--s:s+(.*)
2. [([12]d{3}-[01]d-[0-3]dT[0-2]d:[0-6]d:[0-6]d +#d+)]s+(.*)s--s:s+(.*)
[2016-05-02T16:05:18 #92430] INFO -- : Served asset /navi/hu-0005-03/style.css - 304
Not Modified (1ms)
(1) すべて文字を受けるように、(.*) を使います-> マッチしない入力
(2) 時間の詳細フォーマットを使います->マッチする入力
良いREGEXと悪いREGEXの比較
[(.*)]s+(.*)s--s:s+(.*): 324
良いREGEXと悪いREGEXの比較
[([12]d{3}-[01]d-[0-3]dT[0-2]d:[0-6]d:[0-6]d +#d+)]s+(.*)s--s:s+(.*): 158
最良REGEX
悪い
[(.*)]s+(.*)s--s:s+(.*)
良い
[([12]d{3}-[01]d-[0-3]dT[0-2]d:[0-6]d:[0-6]d +#d+)]s+(.*)s--s:s+(.*)
[2016-05-02T16:05:18 #92430] INFO -- : Served asset /navi/hu-0005-03/style.css - 304
Not Modified (1ms)
最良REGEX
悪い
[(.*)]s+(.*)s--s:s+(.*)
良い
[([12]d{3}-[01]d-[0-3]dT[0-2]d:[0-6]d:[0-6]d +#d+)]s+(.*)s--s:s+(.*)
最良(37)
[([12]d{3}-[01]d-[0-3]dT[0-2]d:[0-6]d:[0-6]d +#d+)]s+([A-Z]*)s-+s:s+(.*)
最後に
良いregexを書くために:
-マッチする入力を使います。(ステップ数が減る)
- patternの間に(.*)を使わないようにする。
ご静聴ありがとうございました!

悪いRegexと良いregexと最良regex