python中re.sub使用

weixin_33758863發表於2015-10-27

先看幫助文件:

Help on function sub in module re:

sub(pattern, repl, string, count=0, flags=0)
    Return the string obtained by replacing the leftmost
    non-overlapping occurrences of the pattern in string by the
    replacement repl.  repl can be either a string or a callable;
    if a string, backslash escapes in it are processed.  If it is
    a callable, it's passed the match object and must return
    a replacement string to be used.

基本意思就是從最左面替換匹配的正規表示式, 如果repl是字串則替換成對應的字串, 如果是可呼叫的, 將傳一個match物件到裡面, 需要返回一個string替換匹配的表示式

舉下面一個例子:

# -*- coding: utf-8 -*-
import re

s = u'1990年3月27日'

def replace_digit(m):
    ss = u'〇一二三四五六七八九'
    index = int(m.group())
    return ss[index]

result = re.sub(u'\d', replace_digit, s, count=4)

print(result)

輸出結果:

一九九〇年3月27日

相關文章