Sunday 4:15 p.m.–4:45 p.m.

正規表現リテラルは本当に必要なのか? (ja)

Makoto Kuwata

Audience level:
Novice
Category:
The Python Language / Python の言語仕様

Description

日本では2013年末ごろ、PerlやRubyやJavaScriptのユーザを中心に、プログラミング言語における「正規表現リテラルの必要性」が多くの支持を集めました。これに対し、Pythonはコア言語仕様として正規表現リテラルを持ちませんが、Pythonが文字列処理や正規表現機能に関して大きな不満もなく使えているのも事実です。 そこで本発表では、プログラミング言語において正規表現リテラルは「あれば便利だけどなくても困らない(ライブラリでカバーできる)」ものであることを、Pythonを使って説明します。具体的には、他言語ユーザが持っている「正規表現リテラルのほうが便利」「動作が高速」「バックスラッシュを二重に書くの面倒」といった誤解を解消することを目指します。 またこれに付随して、Python標準の正規表現ライブラリが抱える問題点についても、その解決策とともに説明します。

Abstract

日本では2013年末ごろ、PerlやRubyやJavaScriptのユーザを中心に、プログラミング言語における「正規表現リテラルの必要性」が支持を集めました。その理由は、「便利」「動作が高速」「Javaだとバックスラッシュを二重に書く必要があり面倒」などでした。 これに対し、Pythonは言語仕様として正規表現リテラルを持ちません。にも関わらず、正規表現や文字列処理においてPythonが大きな不満もなく使えていることも事実です。 そこで本発表では、プログラミング言語において正規表現リテラルは「あれば便利だけどなくても困らない(ライブラリでカバーできる)」ものであることを、Pythonを使って説明します。具体的には、PerlやRubyやJavaScriptのユーザが持っている以下のような誤解を解消することを目指します。 * 誤解:正規表現リテラルがあったほうが使いやすい * 誤解:正規表現リテラルがあったほうが性能がよい * 誤解:正規表現リテラルのほうが文字列関数より学習コストが低い * 誤解:正規表現リテラルがないと二重バックスラッシュが必要 またこれに付随して、Python標準の正規表現ライブラリの問題点についても論じます。正規表現リテラルがなくても便利に使えている標準の正規表現ライブラリですが、よく見てみると設計上の問題点がいくつか存在します。それらの問題点と解決方法を説明します。