Thread Reguläre Ausdrücke miteinander vergleichen/ ineinander suchen (41 answers)
Opened by Bionerd at 2012-07-03 17:28

pq
 2012-07-04 12:12
#159566 #159566
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
du möchtest sagen, ob zwei regexes beide auf eine bestimmte menge von strings matchen. diese strings sind aber unbekannt.

BB[CDA]BFBB würde auf BBCBFBB, BBDBFBB und BBABFBB matchen.

A[A-Z]F würde auf AAF, ABF, ACF, usw., AZF matchen.

da die regexes nicht verankert sind am anfang oder ende, wäre hier BBABFBB der string, auf den beide regexes matchen würden.

das ganze ist nicht trivial lösbar und schon gar nicht mit einem einfachen $regex1 =~ $regex2.

dafür müsstest du entweder brute force eine menge von strings auf beide regexes testen oder die regexes auseinandernehmen, in eine kanonische form überführen (so dass z.b, das von dir genannte {1} eliminiert wird und dann vergleichen.
beim 2. ansatz könnte dir CPAN:YAPE::Regex hilfreich sein.

viel erfolg.

und das nächste mal erklär einfach besser.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Reguläre Ausdrücke miteinander vergleichen/ ineinander suchen