/ / Konvertieren von Perl Regex zu Python Regex - Python, Regex, Perl

Konvertieren von Perl-Regex in Python-Regex - Python, Regex, Perl

Ich wurde gebeten, ein Perl-Skript in Python zu konvertieren.

Ich habe keine Kenntnisse über Perl-Skripting.

Das Perl-Skript enthält diese Codezeilen:

 1. if ($option =~ "Fed5")
2. if (($option =~ m/Fed5/i) && ($option =~ m/KD/i))
3. if (($option =~ m/Fed5/i) && ($option !~ m/KD/i))

Ich habe verstanden, dass dies mit Perl Regex zusammenhängt.

Bitte lassen Sie mich wissen, wie ich ein Python-Äquivalent der obigen Anweisungen erhalten kann.

Antworten:

1 für die Antwort № 1
1. if ($option =~ "Fed5")

äquivalenter Python-Code:

if re.search(r"Fed5", option):

Perl-Code:

2. if (($option =~ m/Fed5/i) && ($option =~ m/KD/i))

äquivalenter Python-Code:

if re.search(r"(?i)Fed5", option) and re.search(r"(?i)KD", option):

Perl-Code:

if (($option =~ m/Fed5/i) && ($option !~ m/KD/i))

äquivalenter Python-Code:

if re.search(r"(?i)(?!.*kd)Fed5", option):

Ich habe die dritte Bedingung gekürzt.

ODER verwenden Sie eine Doppel-If-Bedingung.

if re.search(r"(?i)Fed5", option):
if not re.search(r"(?i)kd", option):

1 für die Antwort № 2

Das m in Perl bedeutet nur, dass die Regex zwischen // und das / i ist ein Modifikator, der besagt, den Fall zu ignorieren.

http://perldoc.perl.org/functions/m.html

Der Operator = ~ ist ein Bindeoperator: http://perldoc.perl.org/perlop.html#Binding-Operators

Damit:

    1. Passen Sie die Zeichenfolge Fed5 an
    1. Match die Zeichenfolge Fed5 Ignorieren Fall, und passen Sie die Zeichenfolge KD auch Groß-und Kleinschreibung.
    1. Match die Zeichenfolge Fed5 ignorieren Fall, und nicht KD passen auch ignorieren Fall.