如何使用正则表达式匹配更长的字符串?

How to use regex pattern to match longer string?

我有一个文本字符串,类似于下面的例子,

I have 5-6 year of experience with 2-3 years experience in Java

我已经使用下面的正则表达式语法来匹配它,

import re

pattern = '\d{1}-\d{1} year'
[(m.start(0), m.end(0),'Experience') for m in re.finditer(pattern, string)]

# results
5-6 year
2-3 year (In this case it's missing out the 's'.)

如何修改此模式以匹配最长的 'years and year'?

添加一个可选的“s”:'\d{1,2}-\d{1,2}\s*years?'。我还把'\d{1}'改成'\d{1,2}'意思是“一位或两位数”(很难想象有人有超过99年的经验),把一个space换成'\s*' - 任意数量的 spaces,包括没有 spaces.