【发布时间】:2012-07-01 19:28:36
【问题描述】:
这可能吗?
基本上,我想把这两个对 sub 的调用变成一个调用:
re.sub(r'\bAword\b', 'Bword', mystring)
re.sub(r'\baword\b', 'bword', mystring)
我真正想要的是某种条件替换符号,例如:
re.sub(r'\b([Aa])word\b', '(?1=A:B,a:b)word')
我只关心第一个字符的大小写。其他都没有。
【问题讨论】:
-
如果您使用替换功能,您可以对替换值执行“高级操作”。请参阅
re.sub,其中说“repl 可以是字符串或函数”。 -
你必须描述你的目标词的形式。例如,它是否总是一个连续的字符串,其中只更改第一个字符的大小写?
-
好的,看看替换函数,虽然我觉得在正则表达式方面这是作弊:(
-
这不是作弊。你想要有条件的替换。正则表达式正在完成匹配和捕获您的模式的工作。但是你想要的是在决定更换它之前先检查一下reault。
-
我知道正则表达式很酷,但是如果你的用法真的这么简单,我会避免使用它们...对于正则表达式,“强大的力量,带来巨大的默默无闻”...