
正規表現がどのようにマッチングを行うか、また正規表現のパフォーマンスについて #phpcon2016 #phpcon2016_2
2016-11-03 14:22:15
オライリーの正規表現本とGihyoさんの正規表現本に書いてる話をしますとのことでした #phpcon2016 #phpcon2016_2
2016-11-03 14:23:44
主に詳細正規表現の語句を使われるそうです #phpcon2016_2 #phpcon2016 pic.twitter.com/TU3DNRp1NE
2016-11-03 14:24:22

意外にオライリーの正規表現本とGihyoさんの正規表現本を読んだことがある人は少ないようだ #phpcon2016 #phpcon2016_2
2016-11-03 14:25:37
PHPの正規表現は preg系、ereg系、mb_ereg系がある。 eregは現在非推奨になっている。 #phpcon2016 #phpcon2016_2
2016-11-03 14:25:37
本日のお話はpreg系-PCREについてのお話をしていただけるそうです #phpcon2016 #phpcon2016_2
2016-11-03 14:26:13
PHPでは正規表現の用途に合わせて様々な関数がある preg_match,preg_match_all,preg_replace,preg_splitなど #phpcon2016 #phpcon2016_2
2016-11-03 14:27:26
正規表現は、内部的にあらゆるパターンを試行する ↓ マッチするときは良いが、マッチ失敗するときは試行回数が膨大になり、大変 ↓ >>>正規表現頑は張り屋さん<<< #phpcon2016 #phpcon2016_2
2016-11-03 14:30:15
preg_match('/\d+$/', '12a');を実行した時 ↓ 結果:マッチしない #phpcon2016 #phpcon2016_2
2016-11-03 14:32:08
試行方法 \d+と12がマッチする $とaがマッチしない 1と\d+をマッチさせようとする $と2をマッチさせようとする 2と\d+をマッチさせる $とaをまっちさせようとする \d+とaをマッチさせようとする ↓ 全部やった!失敗! #phpcon2016_2
2016-11-03 14:33:13
preg_match('/Pen/','Pen-Pineapple-Apple-Pen'); したとき Pen-PのPenがple-Penより先にマッチされる(Pen-PのPenがマッチした段階で処理が終了する) #phpcon2016 #phpcon2016_2
2016-11-03 14:35:10
preg_match('/Apple|Pen/','Pen-Pineapple-Apple-Pen'); したとき -Apple-,Pen-,-Penの三つがマッチ対象だが、一番優先されるのは Pen- #phpcon2016 #phpcon2016_2
2016-11-03 14:36:27
量指定子(+,*,?,{n,n}など)はできるだけ最大をマッチングさせようとする preg_match('/P.+n/', 'Pen-Pineapple-Apple-Pen'); なら 全体がマッチする(これが最長) #phpcon2016 #phpcon2016_2
2016-11-03 14:39:13
preg_match('/P. *n/', 'Pen-Pineapple-Apple-Pen'); でも全体が #phpcon2016 #phpcon2016_2
2016-11-03 14:40:21
preg_match('/P. ?n/', 'Pen-Pineapple-Apple-Pen'); でも最初のPenがマッチする #phpcon2016 #phpcon2016_2
2016-11-03 14:40:41
最少量指定子は+?のように量指定子の後ろに?をつける できるだけ少ない数にマッチし、控えめなマッチなどとも言われる #phpcon2016 #phpcon2016_2
2016-11-03 14:42:41
preg_match('P.+n', 'Pen-...Pen');なら全体にマッチするが preg_match('P.+?n', 'Pen-...Pen');なら最初のPenのみ(最小)にマッチする #phpcon2016 #phpcon2016_2
2016-11-03 14:43:39
"foo"and"bar"文字列があった時 fooのみにマッチさせるなら /".+"/とする…と"foo"and"bar"がマッチしてしまうので /"[^"]+"/("以外が連続する指定)や /".+?"/(".+"二マッチする最小のパターン)とする #phpcon2016_2
2016-11-03 14:46:17