如何标记正则表达式模式ITSELF?

时间:2017-02-02 16:39:06

标签: python regex python-2.7 tokenize

关于如何使用regexp对某些字符串进行标记化的许多问题。

我正在寻找,为了标记正则表达式模式本身,我确信有一些关于这个主题的帖子,但我找不到它们。

示例:

^\w$                    -> ['^', '\w', '&']
[3-7]*                  -> ['[3-7]*']
\w+\s\w+                -> ['\w+', '\s', '\w+']
(xyz)*\s[a-zA-Z]+[0-9]? -> ['(xyz)*','\s','[a-zA-Z]+','[0-9]?']

我假设在调用某些regexp函数时,在python中完成了这项工作。

1 个答案:

答案 0 :(得分:0)

一个开始的地方:PyPy project在(主要)Python中有Python的实现。源代码分发中的re.py会调用sre-compile.c:_compile()来完成工作。你可能能够破解它以提供你想要的输出形式。

编辑此外,Javascript XRegExp library以扩展语法分析正则表达式并将其呈现为标准语法。 parser routine可能会对您有所帮助。