emacs中的rx宏(请参阅http://www.emacswiki.org/emacs/rx和http://doc.endlessparentheses.com/Fun/rx)可以以模块化和可读的方式指定正则表达式(至少您不必注意引用问题)。例如:
(rx "a" (optional "c") "b")
结果
"ac?b"
python中有类似的东西吗?
答案 0 :(得分:0)
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