将Python正则表达式转换为Perl

时间:2013-02-19 15:38:30

标签: python regex perl

我不是正则表达式中最伟大的,所以将它们从一个lang翻译成另一个lang可能是一项艰巨的任务。

tre = re.compile("///--STRING TEXT ONE. Ends with the word EDIT.(?:.*)--///(?:(?:.*\n))*///--END is the first word in STRING TEXT TWO--///")
result = tre.sub(motionBlur_text, configContents)

如果你们可以帮助我把它移到perl(我听说reg表达式更好),这真的很酷。

2 个答案:

答案 0 :(得分:2)

Perl中的正则表达式是相同的:

my $re = qr#///--STRING TEXT ONE. Ends with the word EDIT.(?:.*)--///(?:(?:.*\n))*///--END is the first word in STRING TEXT TWO--///#;

答案 1 :(得分:0)

编译通过qr//运算符完成。您可以使用(大多数是任意)字符而不是'/'。我将使用大括号,因为这是Perl Best Practices建议的:

my $tre = qr{///--STRING TEXT ONE. Ends with the word EDIT.(?:.*)--///(?:(?:.*\n))*///--END is the first word in STRING TEXT TWO--///};

要就地执行替换(请参阅Regexp Quote-Like Operators):

$motionBlur_text =~ s/$tre/$configContents/g;

要对字符串的副本执行替换,并将其返回(Perl 5.14 +)

my $result = $motionBlur_text =~ s/$tre/$configContents/gr;