[英]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
在字符串的開頭匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.