如何编写在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()
3 回答
如果您想匹配您的值而不需要捕获组,您可以使用:
\b(?:\d+-\d+ [yY]ears|[02-9] [Yy]ears|1 [Yy]ear|[1-9]\d+\+? [Yy]ears)\b
见regex demo
Explanation
\b
字边界(?:
非捕获组\d+-\d+ [yY]ears
匹配格式10 - 15年|
或[02-9] [Yy]ears
匹配格式0或2 - 9年|
或1 [Yy]ear
匹配格式1年|
或[1-9]\d+\+? [Yy]ears
匹配格式10年)
关闭非捕获组\b
字边界Python demo
([\ d - ])\ s(年?)
Python Demo
Regex Demo
正则表达式说明:
你可以用
见regex demo . 使用
re.I
标志进行编译以启用不区分大小写的匹配 .Details
(\d+(?:-\d+)?\+?)
- 第1组:\d+
- 1位数(?:-\d+)?
- 与-
匹配的可选组,然后是1位数\+?
- 一个可选的+
字符\s*
- 0个空格(years?)
- 第2组:year
或years
Python demo:
输出: