我有這個詞:word = 'ROTONDE04)'。我想把它清理干凈,只保留字母。因此我嘗試了:>>> re.search('[^a-zA-Z].', word)
<re.Match object; span=(7, 9), match='04'>為什么不返回括號re.search?它不屬于我的班級[^a-zA-Z]。我想避免使用re.sub.
1 回答

飲歌長嘯
TA貢獻1951條經驗 獲得超3個贊
您已指定要匹配的兩個字符:
任何不是字母 (
[^a-zA-Z]
) 的字符,緊跟在后面任何字符 (
.
)
字符串中第一次滿足此條件的是04
.
您可能希望匹配長度至少為一個字符且不包含字母的字符串,在這種情況下,您+
需要.
:
>>> re.search('[^a-zA-Z]+', word) <re.Match object; span=(7, 10), match='04)'>
如果您想匹配零次或多次出現,而不是匹配一次或多次出現,則將使用該*
字符。在這種情況下,使用而不是產生一個空字符串,因為它在一開始就匹配。+
*
+
添加回答
舉報
0/150
提交
取消