Dir*_*ann 5 python regex emacs
emacs 中的 rx 宏(参见http://www.emacswiki.org/emacs/rx和http://doc.endlessparentheses.com/Fun/rx)使得以模块化和可读的方式指定正则表达式成为可能(位于至少你不必关心引用问题)。例如:
(rx "a" (optional "c") "b")
Run Code Online (Sandbox Code Playgroud)
结果是
"ac?b"
Run Code Online (Sandbox Code Playgroud)
python中有类似的东西吗?
IMO,使用 LISP 语法来定义 RegEx 并不是经典用法。怎样才能维持这一点呢?RegEx 语言几乎是一个标准;几乎每个人都可以阅读;rx
不是。你知道吗Omnimark
?它有一个漂亮但冗长的语法。现在忘记了\xe2\x80\xa6
为此,您可以定义简单的函数,例如:
\n\ndef optional(regex):\n return regex + "?"\n\n\ndef regex(*args):\n return "".join(args)\n\n\nREGEX = regex("a", optional("b"), "c")\nprint(REGEX)\n
Run Code Online (Sandbox Code Playgroud)\n\n你会得到:
\n\nab?c\n
Run Code Online (Sandbox Code Playgroud)\n