我被要求将perl脚本转换为python。
我不了解perl脚本。
perl脚本包含以下代码行:
1. if ($option =~ "Fed5")
2. if (($option =~ m/Fed5/i) && ($option =~ m/KD/i))
3. if (($option =~ m/Fed5/i) && ($option !~ m/KD/i))
我知道这与perl正则表达式有关。
请让我知道如何获得与上述声明等效的python。
答案 0 :(得分:1)
perl中的m只意味着匹配//之间的正则表达式 并且/ i是一个修改器,表示忽略大小写。
http://perldoc.perl.org/functions/m.html
=〜运算符是绑定运算符:http://perldoc.perl.org/perlop.html#Binding-Operators
所以:
答案 1 :(得分:1)
1. if ($option =~ "Fed5")
等效的python代码:
if re.search(r'Fed5', option):
Perl代码:
2. if (($option =~ m/Fed5/i) && ($option =~ m/KD/i))
等效的python代码:
if re.search(r'(?i)Fed5', option) and re.search(r'(?i)KD', option):
Perl代码:
if (($option =~ m/Fed5/i) && ($option !~ m/KD/i))
等效的python代码:
if re.search(r'(?i)(?!.*kd)Fed5', option):
我缩短了第三个条件。
或者使用双if条件。
if re.search(r'(?i)Fed5', option):
if not re.search(r'(?i)kd', option):