Python中的正則表達式,它接受字母,數字和只有這些特殊字符(,.- |;!_?)。如何在Python中編寫接受字母,數字和一些選定特殊字符(,.- |;!_?)的正則表達式?
我曾嘗試通過以下的正則表達式解決問題,但它沒有工作:
'([a-zA-Z0-9,.-|;!_?])$'
'([a-zA-Z0-9][.-|;!_?])$'
是否有人可以幫我寫的正則表達式。
Python中的正則表達式,它接受字母,數字和只有這些特殊字符(,.- |;!_?)。如何在Python中編寫接受字母,數字和一些選定特殊字符(,.- |;!_?)的正則表達式?
我曾嘗試通過以下的正則表達式解決問題,但它沒有工作:
'([a-zA-Z0-9,.-|;!_?])$'
'([a-zA-Z0-9][.-|;!_?])$'
是否有人可以幫我寫的正則表達式。
我認爲有以下應工作(上RegExr測試對Foo123,.-|;!_?
):
^[\w,.\-|;!_?]*$
在你的正則表達式,你忘了逃跑的「 - 」字符,這被解釋爲一個字符範圍相匹配的反對。
試試這個(你應該逃脫-
這樣\-
):
^[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>
你可以使用\w
(獎金:Unicode和語言環境支持!):
匹配任何字母數字字符和下劃線;這相當於套[a-zA-Z0-9_]
請參閱Python's documentation。此外,您可能需要指定你的正則表達式模式時要使用原始字符串:
m = re.match(r'[\w,.-|;!?]+', your_string)
注意使用+
(重複一次或多次)。您還使用$
來匹配字符串的末尾,但我沒有將它包含在我的內容中。因人而異。
使用此只有一個字:
'[a-zA-Z0-9,.\-|;!_?]' or '[\w,.\-|;!_?]'
使用此對所有字符:
'[a-zA-Z0-9,.\-|;!_?]*' or '[\w,.\-|;!_?]*'
用這個平等的檢查:
'^[a-zA-Z0-9,.\-|;!_?]*$' or '^[\w,.\-|;!_?]*$'
您的評論幫助我瞭解正則表達式。 –
謝謝你,它會立即解決我的問題。 –