我今天正在处理regex,想替换一个模式,如下所示
所以我想要的是
gere should be gara
cateral should remain cateral
为了做到这一点,我使用以下regex使用re模块。你知道吗
stg = "my string is here "
re.sub(r'e?e','a',stg)
上述表达式的问题是,它与gere
一起正常工作,并将结果提供给gara
但是cateral
也随cataral
而变化
我只想把e(任何单个字符)e替换成a(任何单个字符)a
请告诉我我做错了什么。你知道吗
谢谢
Tags:
我同意@wiktor stribiżew的回答,但做了一个有效的例子。我还在谷歌教程页面的底部做了笔记。你知道吗
基本上,我们希望替换中间可能有一个字母的不连续的“e”值(对于我来说,空白表示一个单独的单词,并且与模式不匹配)。你知道吗
我试着找出如何分组,然后从'(e)\w+?(e) 但发现事实恰恰相反。我们想要“捕获”并保存两个e之间的任何东西,同时用a替换e
不管怎样,我的解决方案是:
输出:
e?e
正则表达式匹配一个可选的e
,然后匹配一个e
,因此re.sub(r'e?e','a',stg)
命令用a
替换ee
或e
。例如geese
会变成gase
,get
会变成gat
。你知道吗您可以使用以下选项之一:
参见Python demo online。你知道吗
正则表达式详细信息:
e
-匹配e
(.)
-将除换行符以外的任何字符捕获到组1中e
-一个e
\1
在替换模式中插入与组1内存缓冲区中存储的值相同的值。你知道吗参见regex demo online。你知道吗
相关问题 更多 >
编程相关推荐