我想替换任何表达式,包括单个数字加上一个数字,一个空格和一个字符。
示例:'3f'应该变为'3 f'
我正在做以下事情,以确保我知道我打算替换的正则表达式是什么。
import re
found = re.match(r'^[0-9][a-z]$', '3f')
if found:
print 'ok'
结果是:
>> ok
但是,当我这样做时
found = re.sub(r'^[0-9][a-z]$',r'^[0-9] [a-z]$', '3f')
我明白了:
>>>> '^[0-9] [a-z]$'
而不是'3 f'
我做错了什么?
答案 0 :(得分:3)
found = re.sub(r'^([0-9])([a-z])$',r'\1 \2', '3f')
# ^^^^^ ^^^^^
# 1 2
您需要为第一场比赛指定r"\1"
,第二场比赛指定r"\2"
等
您在正则表达式
中指定与捕获组()
的匹配项
答案 1 :(得分:2)
不是专门依赖字符串匹配,而是另一种可能性是直接用函数操作匹配的组:
localhost