2012-10-30 10 views
6

アルファベット、数字、_、 - (最小長と最大長)に一致する正規表現があります。Pythonの正規表現:文字範囲内の空白を含む

^[a-zA-Z0-9_-]{3,100}$ 

空白をその文字のセットに含めたいとします。

はPythonドキュメントによれば、例えばWや\ S \として

文字クラスはまた、セットの内部に受け入れられます。

だから私は試してみました:

^[a-zA-Z0-9_-\s]{3,100}$ 

をしかし、それは悪い文字範囲のエラーが発生します。上記のセットに空白を含めるにはどうすればよいですか?

答えて

18

問題は\sではなく、文字の範囲を示す-です(ただし、クラスの最後または開始時ではありません)。これを使用します。

^[a-zA-Z0-9_\s-]{3,100}$ 
+0

ありがとうm.buettner。位置は - 問題だった –

2

^[-a-zA-Z0-9_\s]{3,100}

_-\sは範囲として解釈されました。 [...]

+0

ありがとうdda。問題は確かに - –

0

バックトラックがエスケープ文字であるため、スラッシュをエスケープするために2番目のバックスラッシュを追加してください。

^[a-zA-Z0-9_\\-\\s]{3,100}$ 
関連する問題