だから、正規表現とワイルドカードは違うんだって


以前「正規表現とワイルドカードは違います」というタイトルの記事で書いた話ですが、間違いは至る所にあるようです。

もはや手遅れなのかもしれません。間違ったレポートを書いていた学生に教えてもらったページは、Googleで「perl 正規表現」を検索した結果の、最初の10件に入っていました。曰く、

UNIXやWindowsでは、文字列を検索するときに使用される正規表現として、「*」を任意の文字列(空き文字も含む)に、「?」を任意の1文字として使用することができます。パターンを、app* と表現すると、 apple application appeal などの文字列がマッチすることになります。 (http://www.kent-web.com/perl/chap7.htmlのarchive

例えば、「*」を任意の文字列、「?」を任意の 1文字として表す事が出来ます。 (http://www.site-cooler.com/kwl/perl/8.htmのarchive

なりません、出来ません。そうなるのはワイルドカードであって正規表現ではありません。

「何を信じたらいいの?」という向きは、とりあえず、「正規表現では『*』が任意の文字列を表す」と書いてあるサイトは信用しないことにしたらどうでしょう(例:このブログ)。

お約束ですが、実際にコードを書きながら正規表現を学びたいという方には、拙著『Webアプリケーション構築入門 実践!Webページ制作からマッシュアップまで 』(森北出版, 2011)がおすすめです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です