Мені попросили перетворити скрипт 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 regex.
Будь ласка, дайте мені знати, як я можу отримати Python еквівалент вищезгаданих заяв.
Відповіді:
1 для відповіді № 11. 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):
Я скоротив третю умову.
АБО використовуйте умову double.
if re.search(r"(?i)Fed5", option):
if not re.search(r"(?i)kd", option):
1 для відповіді № 2
Значення m у perl означає лише відповідність регулярного виразу між // і / i є модифікатором, який говорить про ігнорування випадку.
http://perldoc.perl.org/functions/m.html
Оператор = ~ є оператором прив'язки: http://perldoc.perl.org/perlop.html#Binding-Operators
Тому:
- Відповідає рядку Fed5
- Підібрати рядок Fed5, ігноруючи випадок, і відповідати рядку KD ігноруючи випадок.
- Відповідний рядок Fed5 ігноруючи випадок, і не відповідає KD ігноруючи справу.