2017-01-06 71 views

回答

5

我認爲有以下應工作(上RegExr測試對Foo123,.-|;!_?):

^[\w,.\-|;!_?]*$ 

在你的正則表達式,你忘了逃跑的「 - 」字符,這被解釋爲一個字符範圍相匹配的反對。

+0

謝謝你,它會立即解決我的問題。 –

2

試試這個(你應該逃脫-這樣\-):

^[a-zA-Z0-9,.\-|;!_?]+$ 

+防止匹配空字符串,讓他們,你可以使用*來代替。

例子:

>>> import re 
>>> 
>>> re.match('^[a-zA-Z0-9,.\-|;!_?]+$', '12.0') 
<_sre.SRE_Match object at 0x00000000027EB850> 
>>> re.match('^[a-zA-Z0-9,.\-|;!_?]+$', '') 
>>> 
>>> re.match('^[a-zA-Z0-9,.\-|;!_?]+$', 'test!?') 
<_sre.SRE_Match object at 0x00000000027EB7E8> 
1

你可以使用\w(獎金:Unicode和語言環境支持!):

匹配任何字母數字字符和下劃線;這相當於套[a-zA-Z0-9_]

請參閱Python's documentation。此外,您可能需要指定你的正則表達式模式時要使用原始字符串:

m = re.match(r'[\w,.-|;!?]+', your_string) 

注意使用+(重複一次或多次)。您還使用$來匹配字符串的末尾,但我沒有將它包含在我的內容中。因人而異。

2

使用此只有一個字:

'[a-zA-Z0-9,.\-|;!_?]' or '[\w,.\-|;!_?]' 

使用此對所有字符:

'[a-zA-Z0-9,.\-|;!_?]*' or '[\w,.\-|;!_?]*' 

用這個平等的檢查:

'^[a-zA-Z0-9,.\-|;!_?]*$' or '^[\w,.\-|;!_?]*$' 
+0

您的評論幫助我瞭解正則表達式。 –

相關問題