這個問題在這里已經有了答案: 如何將正則運算式匹配的一部分作為python中的變數? (7 個回答) 2 小時前關閉。
text = '榮耀暢玩 40 Plus'
m = re.match(r'(^[^a-zA-Z0-9]{2,})([a-zA-Z0-9]{2,})\s([a-zA-Z0-9]{2,}$)', text)
print(m)
它列印出來:
<re.Match object; span=(0, 12), match='榮耀暢玩 40 Plus'>
它有兩個空格,但該模式只允許一個空格。為什么會匹配?
uj5u.com熱心網友回復:
該模式匹配第一個匹配組中的空格。你可以看到m.groups()
('榮耀暢玩 ', '40', 'Plus')
您可以在排除項中包含空格以避免匹配。
r'(^[^a-zA-Z0-9 ]{2,})([a-zA-Z0-9]{2,})\s([a-zA-Z0-9]{2,}$)'
uj5u.com熱心網友回復:
當您匹配 2 個或更多非字母數字字符時,會包含空格。
我建議嘗試
text = '榮耀暢玩 40 Plus'
m = re.match(r'(^[^a-zA-Z0-9 ]{2,})([a-zA-Z0-9]{2,})\s([a-zA-Z0-9]{2,}$)', text)
print(m)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/531035.html
標籤:Python正则表达式
上一篇:帶有連接節點的鏈接的聚集氣泡
下一篇:正則運算式搜索文本然后提取行
