識別子を一致させていますが、問題があります。識別子にUnicode文字を含めることができます。したがって、物事を行うための古い方法では十分ではありません。
t_IDENTIFIER = r"[A-Za-z](\\.|[A-Za-z_0-9])*"
私のマークアップ言語パーサーでは、明示的に使用する文字を除くすべての文字を許可することでUnicode文字を照合します。これは、マークアップ言語には2つまたは3つの文字しかないため、その方法でエスケープする必要があるためです。
すべてのUnicode文字をPython正規表現およびプライと一致させるにはどうすればよいですか?また、これはまったく良い考えですか?
プログラムの識別子(変数名など)として、Ω»«°foo²väliπなどの識別子を使用できるようにしたいと思います。なんてこった!実用的であれば、自分の言語でプログラムを書いてほしいです!とにかく、ユニコードは今日、さまざまな場所でサポートされており、普及するはずです。
編集:POSIX文字クラスはPython正規表現によって認識されないようです。
>>> import re
>>> item = re.compile(r'[[:word:]]')
>>> print item.match('e')
None
編集:私が必要なものをよりよく説明するため。すべてのUnicode印刷可能文字に一致するが、ASCII文字にはまったく一致しない正規表現が必要です。
編集:r "\ w"は私が望むことを少し行いますが、«»とは一致しません。また、数字と一致しない正規表現も必要です。