我正在尝试将一些perl代码移植到python。不熟悉perl是一个挑战,但我已经完成了大部分工作。然而,有一个函数执行单词替换,我不知道是否有一个直接的python equivelent。
$my_string =~ s/^(.*?) \(The\)$/The $1/;
$my_string=~ s/\bL\.? ?L\.? ?C\.?\b//;
$my_string =~ s/[(),]//g;
我想我可以使用以下内容:
re.sub('s/^(.*?) \(The\)$', '$/The 1/', my_string)
第一个样本,但我对其他人一无所知。
感谢您的任何见解。
答案 0 :(得分:6)
您需要在此删除s/
和/
部分,并使用\1
作为反向引用。使用原始字符串使这个可行:
my_string = re.sub(r'^(.*?) \(The\)$', r'The \1', my_string)
my_string = re.sub(r'\bL\.? ?L\.? ?C\.?\b', '', my_string)
my_string = re.sub(r'[(),]', '', my_string)
这些替换默认为“全局”(g
标志的作用);如果需要限制,请将整数计数添加为第4个参数:
my_string = re.sub(r'^(.*?) \(The\)$', r'The \1', my_string, 1)
my_string = re.sub(r'\bL\.? ?L\.? ?C\.?\b', '', my_string, 1)
my_string = re.sub(r'[(),]', '', my_string)