Python 在字符之间插入空格regex

Python 在字符之间插入空格regex,python,regex,Python,Regex,我对正则表达式非常陌生,我试图在字符串中找到一个实例,其中存在一个由字母w或e后跟两位数字组成的单词,例如e77w10等 这是我目前拥有的正则表达式,我想这是我发现的(如果我错了,请纠正我) ([e | w])\d{0,2}(\.\d{1,2})? 如何在字母e或w后面添加空格?如果没有满足条件的实例,我希望保持字符串的原样。我需要使用re.sub吗?我读过一些关于这方面的文章 输入:hello e77 world 所需输出:hello e 77 world 谢谢。您的正则表达式需要如下所示:

我对正则表达式非常陌生,我试图在字符串中找到一个实例,其中存在一个由字母
w
e
后跟两位数字组成的单词,例如
e77
w10

这是我目前拥有的正则表达式,我想这是我发现的(如果我错了,请纠正我)

([e | w])\d{0,2}(\.\d{1,2})?

如何在字母
e
w
后面添加空格?如果没有满足条件的实例,我希望保持字符串的原样。我需要使用re.sub吗?我读过一些关于这方面的文章

输入:
hello e77 world

所需输出:
hello e 77 world


谢谢。

您的正则表达式需要如下所示:

([ew])(\d{2})
如果只想匹配2位数字,或

([ew])(\d{1,2})
如果您还希望匹配单个数字,如
e4

括号被称为捕获组,可以在搜索和替换中,或者在python中,使用

您的替换字符串应该如下所示

\1 \2
因此,它应该像下面这样简单:

re.sub(r'([ew])(\d{1,2})', r'\1 \2', your_string)
编辑:工作代码

>>> import re
>>> your_string = 'hello e77 world'
>>>
>>> re.sub(r'([ew])(\d{1,2})', r'\1 \2', your_string)
'hello e 77 world'

这就是你想要的:

import re

print(re.sub(r'([ew])(\d{1,2})', r'\g<1> \g<2>', 'hello e77 world'))
重新导入
print(re.sub(r'([ew])(\d{1,2}'),r'\g\g',hello e77 world'))

您没有测试正则表达式吗?因为它实际上没有在你的输入中找到
e77
。试着在这里@WayneWerner测试你的正则表达式,我想它找到了,不是吗?然而,我知道它并不完全准确,因为它也匹配所有出现的e/w。也许这会有帮助:?@hl95它匹配它,是的,但是它匹配了太多的情况,因为几乎所有在
\d{0,2}
之后的事情都是永远不会匹配的。