python正则表达式怎么可以不返回没匹配到的group

clipboard.png

用的reg = '(?<=里程).?(d+?(?:公里|km(?!/)))|(d+?(?:公里|km(?!/))).?(?=里程)'
用的方法是re.findall

上边的文字是输入
下边的list是输出

比如第一个我只要取34km
比如第二个我只要取60公里

怎么可以在正则表达式的层面上解决这个问题?

阅读 2.5k
1 个回答
p = re.compile('(里程)?.*?(?P<data>\d+(?:公里|km))(?(1).*?|.*?里程)')
print(p.search(line).group('data'))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题