Regular Expressions Cookbook, 2nd Edition by Jan Goyvaerts, Steven Levithan

任意の言語における英数字に入力制限

この正規表現は、任意の言語やスクリプトからの入力を文字と数に制限するものです。

^+$

Regex オプション。 None

Regex flavors: .NET, Java, XRegExp, PCRE, Perl, Ruby 1.9

This uses a character class that includes all code points in Unicode Letter, Mark, and Decimal Number category, which follows the official Unicode definition of an alphanumeric character. マークは多くの言語の単語で必要とされるため、マークカテゴリが含まれています。 マークは、他の文字と組み合わせることを意図したコードポイントです(例えば、基本文字のアクセント付きバージョンを形成するために)

残念ながら、Unicode カテゴリは、この本でカバーされているすべての正規表現フレーバーでサポートされていません。 特に、この正規表現は JavaScript (XRegExp を使用しない場合)、Python、Ruby 1.8 のネイティブフレーバーでは動きません。 この正規表現を PCRE で使用するには、PCRE が UTF-8 をサポートするようにコンパイルされている必要があります。 Unicode

Regex flavors: Python

ここで、正規表現を作成する際に UNICODE または U フラグを使用することにより、Python に Unicode カテゴリがないことを回避しています。 これは、Unicode 文字テーブルを使用するようにすることで、いくつかの正規表現トークンの意味を変更します。 \w‘ は英数字とアンダースコアにマッチするので、解決への道のりのほとんどを得ることができます。 その逆である「\W」を否定文字クラスで使うことで、この集合からアンダースコアを取り除くことができるのです。 このような二重否定は正規表現において非常に有用な場合があるが、理解するのが難しい場合もある。 Python 3.x はデフォルトで ‘\w‘ のような非 ASCII 文字を短縮文字として含むので、 UNICODE フラグは必要ありません

コメントを残す

メールアドレスが公開されることはありません。