猿问

在 Python 中使用正则表达式查找字符串中的多年经验

如何编写一个在 Python 中搜索以下内容的正则表达式:


10+ years

10 years

1 year

10-15 years

到目前为止,我已经使用了这个,但它没有为所有人提供结果。


re_expression = '(\d+).(years|year|Year|Years)'

    exp_temp = re.search(re_expression.decode('utf-8'),description)

    experience_1=''

    if exp_temp:

        experience_1 = exp_temp.groups()


猛跑小猪
浏览 181回答 3
3回答

繁星点点滴滴

您可以使用r'(\d+(?:-\d+)?\+?)\s*(years?)'请参阅正则表达式演示。使用re.I标志编译以启用不区分大小写的匹配。细节(\d+(?:-\d+)?\+?) - 第 1 组:\d+ - 1+ 位数字(?:-\d+)?- 一个可选的组匹配-,然后是 1+ 位数字\+?- 一个可选的+字符\s* - 0+ 个空格(years?)- 第 2 组:year或yearsPython 演示:import rerx = 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')

慕森王

([\d+-]+)\s+(years?)import rex ="""123 10+ years some textsome text 99 10 years sssstext 1 year and more textsome 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')]正则表达式说明:
随时随地看视频慕课网APP

相关分类

Python
我要回答