所以我在互联网上看了大约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条狗”。谢谢您的任何帮助。
答案 0 :(得分:1)
您几乎了解了。您只需要在数字和狗之间留一些空间即可。
你能匹配什么吗? (\d{2}).*(dogs)
怎么样?然后,您可以使用join用空格替换中间部分:
>>> print(' '.join(re.search(r'(\d{2}).*(dogs)', 'finksdssfsk32residogs').groups()))
32 dogs