2017-05-10 31 views
1

我需要在python中編寫一個正則表達式來匹配一個只包含數字[0-9],空格和超類的字符串。python匹配每個位置的數字,空格和超級版本

print re.match('\d*', '1sdsd') 

即使它包含字符,上述模式也匹配。

+0

您正則表達式匹配任何字符串。如果要匹配僅包含某些字符的字符串,則需要在前面添加'^',並在表達式 –

+0

的後面添加'$',請閱讀所使用方法的文檔。 – njzk2

+0

@MaartenFabré實際上,使用'match',你不需要'^' – njzk2

回答

2

您的答案會匹配,因爲字符串中有一個數字。如果只在所有字符與正則表達式匹配時才匹配,則必須使用^$指定字符串的開頭和結尾。

print re.match('^[\d\- ]+$', '1sdsd') 

工作示例

https://regex101.com/r/KAzHMA/1

+0

'+'比'{1,}'更好嗎? – mgilson

+2

你不需要'^',因爲你正在使用'match' – njzk2

+0

如果他不使用它,它會因爲那個而匹配。我相信他只希望它匹配如果字符串只有數字,破折號或空格。 –