开发者社区 问答 正文

正则表达式-后向搜索需要固定宽度的模式错误

码:

text = "('hel'lo') eq 'some 'variable he're'"
re.compile(r"(?<!\(|(?<=eq ))'(?!\)|\Z)").sub(string=text, repl="''")

获取错误:

re.error: look-behind requires fixed-width pattern

预期输出

('hel'lo')eq'一些'variable he're'

问题来源:stackoverflow

展开
收起
is大龙 2020-03-23 16:47:09 444 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 如果要断言左边不是eq,则应该是负向后((?<!`)而不是正向后。

    您可以使用2个后向断言来编写模式。

    (?<!\()(?<!eq )'(?!\)|\Z)
    

    正则表达式演示| Python演示

    范例程式码

    import re
    text = "('hel'lo') eq 'some 'variable he're'"
    print(re.compile(r"(?<!\()(?<!eq )'(?!\)|\Z)").sub(string=text, repl="''"))
    

    输出量

    ('hel''lo') eq 'some ''variable he''re'
    

    回答来源:stackoverflow

    2020-03-23 16:47:13 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答地址: