この記事は abicky.net の 正規表現の先読み・後読みを極める! に移行しました
正規表現の亡者です。なおかつPerlネタですので、低機能な正規表現しか利用できない環境では一部の正規表現を再現できない場合があります。 なおここに書いてある正規表現の多くは元ネタのWebページやらブログやらがあった気がするんですが、どうも出てこないので出典はあげられません。すみません。 というか出てこないのでまとめの記事をあげとくと誰かの役に立つかもと思ったり。 このへんに類例はあるけどみつかんない。 問題 クオート文字列、つまり一般的にこういうやつ"This string is \"very\" normal."。 両端境界の文字は別に["'/なんでもござれ]なのだが一般的に普及しているのでこれで代表させてもらう。 これを\"を無視しつついかに"なかみ"を取り出すかというのが課題である。 エスケープがない場合はごく安直に/"([^"]*)"/とすればいいのだが、ある場合はそうはいかない。
わずかな文字がいかにしてパフォーマンスに大きな違いを生めるかというお話 正規表現は、私たち開発者がことあるごとに駆使する呪文のようなものですが、私たちはそれをどんな時も巧みに使いこなしていると言えるでしょうか。正規表現は繊細で精密な言語です。入念な慎重さで記述してやれば、ボウリングで一瞬にして完璧なストライクを取るような強力なテキストとなり得ます。 しかし、正規表現が精密さに欠ける状態で投げ出されると、さながら酔っ払いがよろよろとつまずきながらテキストの上を歩くがごとく、そのボールはぎこちなくボウリングのレーンを転がり、ピンを1つか2つ倒すだけで終わってしまうのです。 これら2つの正規表現の違いは何なのか。何がいい表現と悪い表現を分けるのか。正規表現に素晴らしい力を与えるメカニズムを、この投稿で明かしてみようと思います。効果的な表現とそうでない表現との大きな違いをきっと分かってもらえるはず
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く