在字符正则表达式之间插入空格

时间:2016-08-17 13:49:15

标签: python regex

我是regex的新手,我正在尝试在字符串中查找实例,其中包含字母we后跟2位数的单词,例如e77 w10等。

这是我现在拥有的正则表达式,我认为发现(如果我错了,请纠正我)

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

如何在字母ew之后添加空格?如果没有满足条件的实例,我想保持字符串不变。我需要使用re.sub吗?我已经读了一下这个。

输入:hello e77 world

所需的输出:hello e 77 world

谢谢。

2 个答案:

答案 0 :(得分:6)

你的正则表达式需要看起来像这样:

([ew])(\d{2})

如果您只想匹配2位数字,或

([ew])(\d{1,2})

如果您还想匹配单个数字,例如e4

括号称为捕获组,可以使用re.sub

在搜索和替换中或使用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'

答案 1 :(得分:1)

这就是你之后的事情:

import re

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