SlideShare a Scribd company logo
自己紹介
名前:ディン・ズイ・タイン
年齢: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の間に(.*)を使わないようにする。
ご静聴ありがとうございました!

More Related Content

PPTX
Safe stringにgsubを実行できるように対応
PPTX
構造化データマークアップでステキな検索結果を手に入れる
PPTX
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
PPTX
My sql viewに救われる(かもしれない)
PPTX
Zaru 20160428
PPTX
川又康平 20160428
PPTX
Yamakado 20160428
PPTX
Ruby under the hood
Safe stringにgsubを実行できるように対応
構造化データマークアップでステキな検索結果を手に入れる
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
My sql viewに救われる(かもしれない)
Zaru 20160428
川又康平 20160428
Yamakado 20160428
Ruby under the hood

Viewers also liked (18)

PPTX
turbolinks攻略
PPTX
Have fun-with-ruby
PPTX
無名関数のすすめ
PPTX
Linuxのファイルシステムについて調べてみた
PDF
マーケティング視点でのデザイン
PPTX
インフラ(Aws)覚えたいそんなあなたへ!
PPTX
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
PPTX
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
PPTX
画像処理アルゴリズム入門とcanvas
PDF
Mini magickでの画像合成
PPTX
エンジニアがチームで数字を追って得たもの
PPTX
メール送信におけるスパム認定のリスクと対策
PPTX
AWS VPC ~インフラエンジニアへの道~
PPTX
UXデザインのフレームワーク(´ω`) - スタートアップ向け -
PPTX
良いクラス設計とは?
PPTX
少し未来のコードレビュー
PDF
かんたんHeroku入門 - Heroku へのデプロイと運用 -
PDF
Railsチュートリアルの歩き方 (第4版)
turbolinks攻略
Have fun-with-ruby
無名関数のすすめ
Linuxのファイルシステムについて調べてみた
マーケティング視点でのデザイン
インフラ(Aws)覚えたいそんなあなたへ!
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
画像処理アルゴリズム入門とcanvas
Mini magickでの画像合成
エンジニアがチームで数字を追って得たもの
メール送信におけるスパム認定のリスクと対策
AWS VPC ~インフラエンジニアへの道~
UXデザインのフレームワーク(´ω`) - スタートアップ向け -
良いクラス設計とは?
少し未来のコードレビュー
かんたんHeroku入門 - Heroku へのデプロイと運用 -
Railsチュートリアルの歩き方 (第4版)
Ad

悪いRegexと良いregexと最良regex