悪いRegexと良いregexと最良regex
-
Upload
basicincdev -
Category
Technology
-
view
404 -
download
0
Transcript of 悪いRegexと良いregexと最良regex
自己紹介 名前:ディン・ズイ・タイン 年齢:23 生年 : 1992 年 12 月 05 日 趣味 : ゲーム、漫画、プログラミング 専門:エンジニア
悪い REGEX と良いREGEX と最良 REGEX
発表の内容1. REGEX とは
2. 良い REGEX と悪い REGEX 3. マッチする入力とマッチしない入力
4. 良い REGEX と悪い REGEX の比較
5. 最良 REGEX6. 最後に
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 の間に( .* )を使わないようにする。
ご静聴ありがとうございました!