2013-04-20 24 views
0

在PHP可以做到這一點評估和演示代碼應用re.sub在PHP

$str = preg_replace("~^(<.*?>)([0-9a-zа-яё]){1}(.*?)~eu", "'$1 '.mb_strtoupper('$2', 'UTF-8').'$3'", $str); 

我如何能做到這一點在Python?

我試試這個,但它沒有工作..

str=re.sub("~^(<.*?>)([0-9a-zа-яё]){1}(.*?)~eu", "\\1 \\2.upper()\\3") 

回答

1

使用,可以執行任意功能是一個安全隱患的字符串。相反,你可以提供一個函數,而不是一個將完成整個事情的字符串。

def repl(match): 
    return "{0} {1}{2}".format(match.group(1), match.group(2).upper(), match.group(3)) 

text = re.sub("~^(<.*?>)([0-9a-zа-яё]){1}(.*?)~eu", repl, text) 

另外,請注意str不是一個字符串一個好名字,因爲它屏蔽了該str內置功能。