3 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用
r'(\d+(?:-\d+)?\+?)\s*(years?)'
請參閱正則表達(dá)式演示。使用re.I
標(biāo)志編譯以啟用不區(qū)分大小寫的匹配。
細(xì)節(jié)
(\d+(?:-\d+)?\+?)
- 第 1 組:\d+
- 1+ 位數(shù)字(?:-\d+)?
- 一個(gè)可選的組匹配-
,然后是 1+ 位數(shù)字\+?
- 一個(gè)可選的+
字符\s*
- 0+ 個(gè)空格(years?)
- 第 2 組:year
或years
Python 演示:
import re
rx = re.compile(r"(\d+(?:-\d+)?\+?)\s*(years?)", re.I)
strs = ["10+ years", "10 years", "1 year", "10-15 years"]
for description in strs:
exp_temp = rx.search(description)
if exp_temp:
print(exp_temp.groups())
輸出:
('10+', 'years')
('10', 'years')
('1', 'year')
('10-15', 'years')

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
([\d+-]+)\s+(years?)
import re
x ="""
123 10+ years some text
some text 99 10 years ssss
text 1 year and more text
some text 10-15 years some text
"""
result = re.findall(r"([\d+-]+)\s+(years?)", x, re.IGNORECASE)
print(result)
[('10+', 'years'), ('10', 'years'), ('1', 'year'), ('10-15', 'years')]
正則表達(dá)式說明:
添加回答
舉報(bào)