我很新的正则表达式,我试图找到实例在存在既包括信w
或e
其次是2个位数的字一个字符串,如e77
w10
等。插入空间的正则表达式
下面是我目前拥有的正则表达式,我觉得发现(纠正我,如果我错了)
([e|w])\d{0,2}(\.\d{1,2})?
我怎么能信e
或w
之后添加一个空格?如果没有符合条件的实例,我想保留字符串。我需要使用re.sub吗?我读过一些关于这个的内容。
输入:hello e77 world
所需的输出:hello e 77 world
谢谢。
我很新的正则表达式,我试图找到实例在存在既包括信w
或e
其次是2个位数的字一个字符串,如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,使用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'
这就是你'之后:
import re
print(re.sub(r'([ew])(\d{1,2})', r'\g<1> \g<2>', 'hello e77 world'))
你没有*测试*你的正则表达式吗?因为它实际上并没有在你的输入中找到'e77'。 –
尝试在这里测试你的正则表达式https://regex101.com/#python – mkaran
@WayneWerner我认为这是找到它,不是吗? http://regexr.com/3e1j5然而,我知道它并不完全准确,因为它也匹配所有的e/w。 – hl95