将AND与正则表达式结合使用的Python

时间:2020-03-05 02:43:59

标签: python regex

所以我在互联网上看了大约20分钟,但无法弄清楚。可以在正则表达式中使用AND或类似方法(我刚刚开始学习正则表达式)?

例如,我有字符串“ finksdssfsk32residogs”,我想获取输出:“ 32条狗”。我已经尝试过使用re.search,re.match和re.findall,但是我没有任何运气。我已经尝试过类似的事情:

re.findall(r"(\d{2})(dogs)", str)
re.search(r"(\d{2})(dogs)", str)

我已经尝试了每种的几种组合。而且我知道我可以用多行代码做到这一点,但目标是仅用一行就可以从“ finksdssfsk32residogs”中获得“ 32条狗”。谢谢您的任何帮助。

1 个答案:

答案 0 :(得分:1)

您几乎了解了。您只需要在数字和狗之间留一些空间即可。

你能匹配什么吗? (\d{2}).*(dogs)怎么样?然后,您可以使用join用空格替换中间部分:

>>> print(' '.join(re.search(r'(\d{2}).*(dogs)', 'finksdssfsk32residogs').groups()))
32 dogs