在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")
答案 0 :(得分: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
内置函数。