加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在python中是否有与emacs的rx宏相同的东西?

发布时间:2020-12-20 13:09:31 所属栏目:Python 来源:网络整理
导读:emacs中的rx宏(参见 http://www.emacswiki.org/emacs/rx和 http://doc.endlessparentheses.com/Fun/rx)可以以模块化和可读的方式指定正则表达式(至少您不必关心引用问题).例如: (rx "a" (optional "c") "b") 结果是 "ac?b" 在python中有类似的东西吗? 解决
emacs中的rx宏(参见 http://www.emacswiki.org/emacs/rx和 http://doc.endlessparentheses.com/Fun/rx)可以以模块化和可读的方式指定正则表达式(至少您不必关心引用问题).例如:

(rx "a" (optional "c") "b")

结果是

"ac?b"

在python中有类似的东西吗?

解决方法

IMO,使用LISP语法定义RegEx不是经典用法.怎么能保持这个? RegEx语言几乎是一个标准;几乎每个人都可读; rx不是.你知道Omnimark吗?它有一个漂亮但冗长的语法.它现在被遗忘了……

要做到这一点,你可以定义简单的函数,例如:

def optional(regex):
    return regex + "?"


def regex(*args):
    return "".join(args)


REGEX = regex("a",optional("b"),"c")
print(REGEX)

你会得到:

ab?c

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读