Python中的可变宽度后向问题

发布于 2021-01-29 18:14:39

我有以下几种情况:

1) car on the right shoulder
2) car on the left shoulder
3) car on the shoulder

我想在不存在left | right时匹配“肩膀”。所以只有3)返回“肩膀”

re.compile(r'(?<!right|right\s*)shoulder')
sre_constants.error: look-behind requires fixed-width pattern

看来我不能使用\ s *和“ |”

我该如何解决。

提前致谢!

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    regex 模块:可变宽度后向

    除了HamZa的答案之外,对于Python中任何复杂的正则表达式,我建议使用regexMatthew
    Barnett
    出色的模块。它支持无限查找-与.NET和JGSoft一起使用的无限引擎之一。

    这使您可以执行以下操作:

    import regex
    if regex.search("(?<!right |left )shoulder", "left shoulder"):
        print("It matches!")
    else:
        print("Nah... No match.")
    

    \s+如果您愿意,也可以使用。

    输出:

    It matches!
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看