這是我第一次嘗試使用Python的正則表達式,或者根本不按預期工作。我想要一個正則表達式匹配任何字母字符或下劃線作爲第一個字符,然後是任意數量的字母數字字符或下劃線。我使用的正則表達式是'^ [a-z_,AZ] [a-z_A-Z0-9] *',它似乎在pythex.org上生成我想要的,但在我的代碼中,它匹配我所做的字符串不想。Python正則表達式匹配我不想要的字符串
我的代碼如下:被匹配,我不想串
isMatch = re.match('^[a-z_A-Z][a-z_A-Z0-9]*', someString)
return True if isMatch else False
兩個例子是: 「QQ-Q」 和 「VA [R」。我究竟做錯了什麼?
給我們展示什麼'someString'是 –
那麼,前兩個字符與預期完全匹配,可以與[[a-z_A-Z]]匹配,然後匹配[a-z_A-Z0-9]。這兩個條件之後的'*'象徵着前面的語句可以重複零次或多次。該模式匹配字符串的開始部分爲有效,然後忽略其餘部分,因爲缺少結尾'$'或任何其他模式以顯示您想要在那裏結束搜索。 –
如果你正在嘗試編寫一個函數來檢測一個字符串是否是一個有效的Python標識符,那麼你可以在沒有正則表達式的情況下這樣做:嘗試'str.isidentifier()'方法。 – Kevin