【发布时间】:2017-09-16 19:14:31
【问题描述】:
假设我有一个逗号分隔的行:
aa,bb,cc
我可以使用正则表达式(不太好,因为这也匹配,aa,但这不是这里的问题):
(<my pattern>)?(,<my pattern>)*
例如
([a-zA-Z]*)?(,[a-zA-Z]*)*
现在,假设<my pattern> 非常长且复杂,如果我能说这样的话会很好:
(<my pattern>)?(,<repeat previous/named group>)*
有没有办法说重复某个组(名称)(在 Python 3.5 中)
【问题讨论】:
-
<my pattern> is very long and complex那么,那又怎样?只需通过(?:[a-zA-Z]+)(?:,?[a-zA-Z])*复制它因为<your pattern>没什么特别的,所以没有理由使用递归。仅当您需要平衡文本(可以是任何内容)时才使用递归,因为递归通常会增加相当大的开销。
标签: python regex python-3.x