【发布时间】:2017-06-19 20:12:43
【问题描述】:
关于如何使用正则表达式标记某些字符串的许多问题。
不过,我正在寻找,为了标记正则表达式模式本身,我确信有一些关于该主题的帖子,但我找不到它们。
例子:
^\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 中完成的。
【问题讨论】:
-
您可以将正则表达式视为有限状态机的简写:stackoverflow.com/questions/525004/…
-
其中一个问题是诸如
[-z]与[a-z]之类的结构——元代码会根据它们的位置改变它们的含义。其他一些:[*]*和[[]。我认为严格的从左到右解析是这样做的唯一方法。 -
BTW Python 在后台使用boost。
-
来自@AndreiSavin 链接的问题,this answer。另外,the parser 来自 oniguruma ...但这并没有完全在 python 中实现:)。
标签: python regex python-2.7 tokenize