Hilfe zu regulärem Ausdruck


d_b

Mitglied
Hallo,
ich bin ein ziemlicher Neuling mit regex und bräuchte daher eine kleine Hilfestellung. Mit dem Python Modul re möchte ich einen Text nach folgendem Schema durchsuchen:
"xxx|xxx" dabei steht x für eine Zahl von 1-10. Das habe ich so gelöst:

Code:
[0-9]{3}\|[0-9]{3}
Das funktioniert soweit wunderbar aber jetzt zu meinem Problem, wo ich nicht weiterkomme. Er soll nur anschlagen, wenn xxx|xxx nicht in Klammern eingeschlossen ist.
Also bei 123|123 soll es anschlagen, bei (123|123) aber nicht.
Ich hoffe das war verständlich ausgedrückt und jemand kann mir hier weiterhelfen.
Vielen Dank im Vorraus :)
David
 

renee

Erfahrenes Mitglied
Keine Ahnung, wie kompatibel die re-Bibliothek zu Perl's Regulären Ausdrücken ist, unter Perl funktioniert

Code:
(?!\()[0-9]{3}\|[0-9]{3}(?!\))
Code:
#!/usr/bin/perl

use strict;
use warnings;

for my $string ( '(123|123)', '123|123' ){
  print "$string\n" if $string =~ /(?!\()[0-9]{3}\|[0-9]{3}(?!\))/;
}
Ausgabe:
Code:
C:\regex.pl
123|123
 

d_b

Mitglied
Das funktioniert super und ich hab wieder was gelernt :)
Ich danke dir vielmals!
David