這之後,Python的正則表達式分隔的數字是我使用正則表達式:破折號
date = "1981-89"
date = re.findall(r'\d+', date)
如果日期是1981年至1989年這將返回[1981],[89]。添加到正則表達式忽略短劃線之後的任何內容(包括短劃線本身)是什麼?
謝謝!
這之後,Python的正則表達式分隔的數字是我使用正則表達式:破折號
date = "1981-89"
date = re.findall(r'\d+', date)
如果日期是1981年至1989年這將返回[1981],[89]。添加到正則表達式忽略短劃線之後的任何內容(包括短劃線本身)是什麼?
謝謝!
如果需要使用正則表達式,使用match
搜索的第一個元素:
re.match(r'(\d+)', date).group() # matching using parenthesis in regex
我同意這一點。在我看來,英國格拉德要求第一個匹配的項目,因此應該使用'match'或'search'而不是'findall'。 – bmhkim
@bmhkim是的,我從'findall'變成了'match'。從來沒有真正理解'match'和'search'之間的區別。 –
你可以用re.sub
其刪除:
>>> re.sub(r'-.*','',date)
'1981'
我該怎麼加正則表達式忽略短劃線之後的任何東西,包括破折號本身?
你可以使用這個表達式:
date = "1981-89"
date = re.match(r'\d+(?=-)', date).group()
// 1981
(?=-)
是在先行是確保我們只匹配後跟連字符數。
爲什麼不只是分割字符串,並採取你所需要的? –
'date.partition(' - ')[0]'比使用Regex更有效率。 – iCodez
嗨,大家好,謝謝你的迴應。我正在嘗試學習正則表達式。我可以輕鬆地解析字符串,但我正在嘗試學習新的東西。謝謝! –