![](/img/trans.png)
[英]How to search string using regular expression for string contains characters alphabets and special characters like -, () using 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.