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}
之后的事情都是永远不会匹配的。