为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

猛跑小猪 2021-09-11 20:47:12
如何编写一个在 Python 中搜索以下内容的正则表达式:10+ years10 years1 year10-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()
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您可以使用

r'(\d+(?:-\d+)?\+?)\s*(years?)'

请参阅正则表达式演示。使用re.I标志编译以启用不区分大小写的匹配。

细节

  • (\d+(?:-\d+)?\+?) - 第 1 组:

    • \d+ - 1+ 位数字

    • (?:-\d+)?- 一个可选的组匹配-,然后是 1+ 位数字

    • \+?- 一个可选的+字符

  • \s* - 0+ 个空格

  • (years?)- 第 2 组:yearyears

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')


查看完整回答
反对 回复 2021-09-11
?
慕森王

TA贡献1777条经验 获得超3个赞

([\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')]

正则表达式说明:

//img1.sycdn.imooc.com//613ca5850001f65106070288.jpg


查看完整回答
反对 回复 2021-09-11
  • 3 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信