如何使用正则表达式匹配更长的字符串?
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.
我有一个文本字符串,类似于下面的例子,
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.