簡體   English   中英

如何在Python中編寫一個接受字母,數字和一些選定的特殊字符(,.- |;!_?)的正則表達式?

[英]How to write a regular expression in Python that accepts alphabets, numbers and a few selected special characters(,.-|;!_?)?

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>

僅用於一個字符:

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

將其用於所有字符:

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

使用它進行相等檢查:

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

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

匹配任何字母數字字符和下划線; 這等效於設置[a-zA-Z0-9_]

請參閱Python的文檔 另外,在指定正則表達式模式時,您可能希望使用原始字符串:

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

注意使用+ (重復一次或多次)。 您還使用了$來匹配字符串的結尾,但是我沒有將它包括在我的字符串中。 YMMV。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM