使用正则表达式编译对象并用每个

时间:2017-08-05 01:14:02

标签: python regex

我有一个regex对象是re.compile()对象的字典,如下所示:

p1 = r'\d+'
p1 = re.compile(p1, re.IGNORECASE)
regex['p1'] = p1

p2 = r'[a-z]+'
p2 = re.compile(p2, re.IGNORECASE)
regex['p2'] = p2

我有一个字符串,让我们这样说。

1234 abcd 123 abc

我想替换所有的比赛。

regex['p1'].sub(text,'NUM')
regex['p2'].sub(text,'ALPHA')

所以最终产品看起来像这样:

NUM ALPHA NUM ALPHA

1 个答案:

答案 0 :(得分:1)

sub的第一个参数应该是替换,你需要切换“' /' ALPHA'像这样的文字:

text = "1234 abcd 123 abc"

regex['p1'].sub('NUM', text)
# 'NUM abcd NUM abc'

把事情放在一起:

regex['p1'].sub('NUM', regex['p2'].sub('ALPHA', text))
# 'NUM ALPHA NUM ALPHA'