0

在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")
4

1 回答 1

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内置函数。

于 2013-04-20T15:47:22.880 回答