簡體   English   中英

在python中匹配正則表達式

[英]matching regular expression in python

我有一個僅應包含字母數字字符的字符串。 因此,為了進行驗證,我有以下代碼,但在某些情況下不起作用。

p = re.compile(r'\w+')
bool(p.match("str"))

但這在某些情況下會失敗,例如當str = "we1}" ,結果為true,但應為false;而當str = ")we1"返回false時,這是正確的。 因此,如果我希望我的字符串僅由字母數字字符組成,該如何正確處理所有這些情況。

確保還使用行開始/結束錨點( ^ and $ ):

p = re.compile(r'^\w+$')

沒有^ and $則您的正則表達式將僅匹配we1並且您將返回錯誤的成功。

注意: \\w將匹配[A-Za-z0-9_] _ [A-Za-z0-9_] (字母數字或下划線)

使用^ (匹配字符串的開頭)和$ (匹配字符串的結尾):

>>> p = re.compile(r'^\w+$')
>>> bool(p.match('str'))
True
>>> bool(p.match('str}'))
False

^是可選的,因為re.match在字符串的開頭匹配。

參見search()vs match()

暫無
暫無

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

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