Konvertieren der Perl-Regex-Anweisung in Python-RegexPython

Python-Programme
Anonymous
 Konvertieren der Perl-Regex-Anweisung in Python-Regex

Post by Anonymous »

Ich muss einige reguläre Ausdrücke von Perl nach Python konvertieren, bin aber mit Perl-Regex nicht so vertraut.

Ich habe Folgendes:

Code: Select all

$x =~ s/([^\"])(item\s+7[^0-9a-z\"]*management(?:[^0-9a-z]{0,3}s)?\s+discussions?\s+and\s+analysis\s+of\s+(?:financial\s+conditions?\s+|results\s+of\s+operations?)(?:\s+and\s+results\s+of\s+operations?|\s+and\s+financial\s+conditions?)?)/\1#######ITEM7:\2#######/gis;

$x =~ s/([^\"])(item\s+7[^0-9a-z\"]*a[^0-9a-z\"]*(?:quantitative\s+and\s+(?:qualitative|qualification)\s+disclosures?\s+about\s+)?market\s+risk)/\1#######ITEM7A:\2#######/gis;

$x =~ s/([^\"])(item\s+8[^0-9a-z\"]*.{0,40}financial\s+statements[^\.])/\1#######ITEM8:\2#######/gis;

@X = (split /\#\#\#\#\#\#\#/, $x)
Ich glaube, dass s/ äquivalent zu python re.split ist, bin mir aber nicht sicher, was /gis macht.

Außerdem bin ich mir auch nicht sicher, was das bedeutet:

Code: Select all

(@M) = ($y =~ m/((?:\d+:ITEM7 \d+:\d+ )+(?:\d+:ITEM7A \d+:\d+ )*)(?:\d+:ITEM8 \d+:\d+\s*)+/g)
Ich würde mich sehr über Hilfe freuen!

BEARBEITEN:

Nur noch eine kurze Frage, was genau bewirkt:

Code: Select all

for($i = 0; $i < scalar(@X); ++$i) {
if($X[$i] =~ m/^(ITEM(?:7|7A|8)):(.*)$/s) {
$Z[$i] = $2;
$Y[$i] = $i . ':' . $1;
} else {
$Z[$i] = $X[$i];
$Y[$i] = $i . ':' . length_in_words($X[$i]);
}
}

sub length_in_words {
my $x = shift;
my @k;
return scalar(@k = $x =~ m/(\S+)/sg);
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post