これを読んであなたも正規表現マスター!正規表現再入門 #phpcon2016 #phpcon2016_2

正規表現再入門 @shin1x1 新原 雅司
3
トゥギャッター開発まとめ @tg__dev

正規表現がどのようにマッチングを行うか、また正規表現のパフォーマンスについて #phpcon2016 #phpcon2016_2

2016-11-03 14:22:15
トゥギャッター開発まとめ @tg__dev

正規表現の書籍 詳細 正規表現 正規表現 技術入門 #phpcon2016 #phpcon2016_2

2016-11-03 14:22:49
ヤエガッシー @yaegassy

オライリーの正規表現本とGihyoさんの正規表現本に書いてる話をしますとのことでした #phpcon2016 #phpcon2016_2

2016-11-03 14:23:44
ヤエガッシー @yaegassy

意外にオライリーの正規表現本とGihyoさんの正規表現本を読んだことがある人は少ないようだ #phpcon2016 #phpcon2016_2

2016-11-03 14:25:37
トゥギャッター開発まとめ @tg__dev

PHPの正規表現は preg系、ereg系、mb_ereg系がある。 eregは現在非推奨になっている。 #phpcon2016 #phpcon2016_2

2016-11-03 14:25:37
トゥギャッター開発まとめ @tg__dev

本日のお話はpreg系-PCREについてのお話をしていただけるそうです #phpcon2016 #phpcon2016_2

2016-11-03 14:26:13
トゥギャッター開発まとめ @tg__dev

PHPでは正規表現の用途に合わせて様々な関数がある preg_match,preg_match_all,preg_replace,preg_splitなど #phpcon2016 #phpcon2016_2

2016-11-03 14:27:26
トゥギャッター開発まとめ @tg__dev

正規表現は、内部的にあらゆるパターンを試行する ↓ マッチするときは良いが、マッチ失敗するときは試行回数が膨大になり、大変 ↓ >>>正規表現頑は張り屋さん<<< #phpcon2016 #phpcon2016_2

2016-11-03 14:30:15
トゥギャッター開発まとめ @tg__dev

preg_match('/\d+$/', '12a');を実行した時 ↓ 結果:マッチしない #phpcon2016 #phpcon2016_2

2016-11-03 14:32:08
トゥギャッター開発まとめ @tg__dev

試行方法 \d+と12がマッチする $とaがマッチしない 1と\d+をマッチさせようとする $と2をマッチさせようとする 2と\d+をマッチさせる $とaをまっちさせようとする \d+とaをマッチさせようとする ↓ 全部やった!失敗! #phpcon2016_2

2016-11-03 14:33:13
トゥギャッター開発まとめ @tg__dev

preg_match('/Pen/','Pen-Pineapple-Apple-Pen'); したとき Pen-PのPenがple-Penより先にマッチされる(Pen-PのPenがマッチした段階で処理が終了する) #phpcon2016 #phpcon2016_2

2016-11-03 14:35:10
matsuoshi @matsuoshi

正規表現の例題が Pen-Pineapple-Apple-Pen #phpcon2016

2016-11-03 14:35:57
トゥギャッター開発まとめ @tg__dev

preg_match('/Apple|Pen/','Pen-Pineapple-Apple-Pen'); したとき -Apple-,Pen-,-Penの三つがマッチ対象だが、一番優先されるのは Pen- #phpcon2016 #phpcon2016_2

2016-11-03 14:36:27
トゥギャッター開発まとめ @tg__dev

量指定子(+,*,?,{n,n}など)はできるだけ最大をマッチングさせようとする preg_match('/P.+n/', 'Pen-Pineapple-Apple-Pen'); なら 全体がマッチする(これが最長) #phpcon2016 #phpcon2016_2

2016-11-03 14:39:13
NAZA @NazaNuadha

正規表現 どのように動いているのか知らなかった #phpcon2016 #phpcon2016_2

2016-11-03 14:39:23
トゥギャッター開発まとめ @tg__dev

preg_match('/P. *n/', 'Pen-Pineapple-Apple-Pen'); でも全体が #phpcon2016 #phpcon2016_2

2016-11-03 14:40:21
トゥギャッター開発まとめ @tg__dev

preg_match('/P. ?n/', 'Pen-Pineapple-Apple-Pen'); でも最初のPenがマッチする #phpcon2016 #phpcon2016_2

2016-11-03 14:40:41
トゥギャッター開発まとめ @tg__dev

最大量指定子は欲張りなマッチで、できるだけ多くにマッチする #phpcon2016 #phpcon2016_2

2016-11-03 14:41:53
トゥギャッター開発まとめ @tg__dev

最少量指定子は+?のように量指定子の後ろに?をつける できるだけ少ない数にマッチし、控えめなマッチなどとも言われる #phpcon2016 #phpcon2016_2

2016-11-03 14:42:41
トゥギャッター開発まとめ @tg__dev

preg_match('P.+n', 'Pen-...Pen');なら全体にマッチするが preg_match('P.+?n', 'Pen-...Pen');なら最初のPenのみ(最小)にマッチする #phpcon2016 #phpcon2016_2

2016-11-03 14:43:39
トゥギャッター開発まとめ @tg__dev

"foo"and"bar"文字列があった時 fooのみにマッチさせるなら /".+"/とする…と"foo"and"bar"がマッチしてしまうので /"[^"]+"/("以外が連続する指定)や /".+?"/(".+"二マッチする最小のパターン)とする #phpcon2016_2

2016-11-03 14:46:17