我是regex的新手,我正在尝试在字符串中查找实例,其中包含字母w
或e
后跟2位数的单词,例如e77
w10
等。
这是我现在拥有的正则表达式,我认为发现(如果我错了,请纠正我)
([e|w])\d{0,2}(\.\d{1,2})?
如何在字母e
或w
之后添加空格?如果没有满足条件的实例,我想保持字符串不变。我需要使用re.sub吗?我已经读了一下这个。
输入:hello e77 world
所需的输出:hello e 77 world
谢谢。
答案 0 :(得分:6)
你的正则表达式需要看起来像这样:
([ew])(\d{2})
如果您只想匹配2位数字,或
([ew])(\d{1,2})
如果您还想匹配单个数字,例如e4
括号称为捕获组,可以使用re.sub
你的替换字符串应该是
\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'))