【发布时间】:2014-06-09 15:12:20
【问题描述】:
Python 是否支持正则表达式中的条件结构?
-
如果是,为什么我不能拥有以下内容(在 if 中使用前瞻 部分)对吗?有什么方法可以让 Python 支持它?
>>> p = re.compile(r'(?(?=regex)then|else)') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/re.py", line 190, in compile return _compile(pattern, flags) File "/usr/lib/python2.7/re.py", line 242, in _compile raise error, v # invalid expression sre_constants.error: bad character in group name -
但是,使用反向引用作为 if 部分可以:
>>> p = re.compile(r'(expr)?(?(1)then|else)')
http://www.regular-expressions.info/conditional.html 说
JGsoft 引擎、Perl、PCRE、Python 支持条件语句, 和 .NET 框架。
在正则表达式中使用条件的最接近的解决方案是什么?
我的 Python 是 2.7.3。我不知道如何检查re 模块的版本(我该怎么做?)。谢谢。
【问题讨论】:
-
可能不行,它在最新的python 3.4中不起作用