我有一個字符串,它應該只包含字母數字字符。因此,對於驗證,我有以下代碼,但它不適用於某些情況。在Python中匹配正則表達式
p = re.compile(r'\w+')
bool(p.match("str"))
但這種失敗在某些情況下,當str = "we1}"
結果是真喜歡,但它應該是假的,而str = ")we1"
返回false這是正確的。因此,如果我希望我的字符串只包含字母數字字符,那麼如何正確處理所有這些情況。
我有一個字符串,它應該只包含字母數字字符。因此,對於驗證,我有以下代碼,但它不適用於某些情況。在Python中匹配正則表達式
p = re.compile(r'\w+')
bool(p.match("str"))
但這種失敗在某些情況下,當str = "we1}"
結果是真喜歡,但它應該是假的,而str = ")we1"
返回false這是正確的。因此,如果我希望我的字符串只包含字母數字字符,那麼如何正確處理所有這些情況。
使用^
(匹配字符串的開始)和$
(匹配字符串的結尾):
>>> p = re.compile(r'^\w+$')
>>> bool(p.match('str'))
True
>>> bool(p.match('str}'))
False
^
是可選,因爲re.match
匹配字符串的開頭。
確保使用線開始/結束錨(^ and $
)也:
p = re.compile(r'^\w+$')
沒有^ and $
您正則表達式匹配只是we1
和你將錯就錯的成功返回。
注:\w
將匹配[A-Za-z0-9_]
(字母數字或下劃線)
感謝您的解決方案。 – prattom