2012-10-30 19 views
6

Alfabelerle, sayılarla, _ ve - (minimum ve maksimum uzunlukla) eşleşen normal bir ifadem var.Python regex: Karakter aralığının içinde boşluk içeriyor

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

Bu karakter kümesine boşluk eklemek istiyorum. Python belgelerine göre

: örneğin \ w veya \ S gibi

karakter sınıfları da bir dizi içinde kabul edilmektedir.

yüzden çalıştı:

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

Fakat kötü karakter aralığı hata veriyor. Yukarıdaki setteki boşlukları nasıl ekleyebilirim?

cevap

18

Sorun, \s değil, ya da sınıfın başında ya da başında olmadığı sürece bir karakter aralığını belirten - değil. Bunu kullanın:

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

Teşekkürler m.buettner. Pozisyonu - sorun –

2

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

_-\s bir aralık olarak yorumlandı. Kendisini temsil eden bir tire, içteki ilk veya son karakter olmalıdır. [...]

+0

idi dda. Sorun gerçekten de pozisyonuydu. –

0

Doğru yoldasınız, Eğik çizgiden kaçmak için ikinci bir ters eğik çizgi ekleyin, çünkü ters eğik çizgi bir kaçış karakteridir.

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