【发布时间】:2019-02-22 18:10:13
【问题描述】:
是否可以在re.sub() 中使用python 的正则表达式条件?我已经尝试了许多变体,但没有运气。这就是我所拥有的。
import re
# match anything: <test> always true
a = re.compile('(?P<test>.*)')
# return _'yes'_ or 'no' based on <test>
a.sub('(?(\g<test>)yes|no)', 'word')
'(?(word)yes|no)'
我期待的是“是”或“否”,而不是实际的测试。
我从中得到的是看到<test>,但没有执行正则表达式条件。有没有其他方法可以做到这一点?
我尝试使用 re.sub(pat, rep, str) 得到相同的结果。
【问题讨论】:
-
您能否在此基础上添加具有代表性的输入文本和所需的输出?
-
我做到了。输入是'word',期望的输出是'yes'。
-
您希望在什么情况下打印“否”?请注意,替换参数绝不是正则表达式。它是 1) 纯文本; 2) 对捕获组的引用或 3) 函数引用。
-
有趣的是正则表达式组可用但正则表达式测试不可用。
标签: python regex conditional