Spero che la mia domanda non sia già stata posta da qualcun altro, poiché ho cercato di guardare quasi ovunque nel sito ma non sono riuscito a trovare una risposta.Corrispondenza con due pattern sovrapposti con Perl
Il mio problema è: Sto facendo uno script PERL che deve rilevare la posizione di ogni occorrenza di uno o di un altro modello in una stringa.
Per esempio:
$string = "betaalphabetabeta";
$pattern = "beta|alpha";
In questo caso, vorrei il mio script di restituire 4 partite.
ho pensato che questo potrebbe essere realizzato facilmente utilizzando l'operatore di corrispondenza in qualche modo simile:
$string =~ /beta|alpha/g;
Tuttavia, poiché le due modelli ("alpha", "beta") sono parzialmente sovrapposte, il pezzo del codice che ho appena postato ignora qualsiasi occorrenza del primo pattern quando si sovrappone al secondo.
E.g. se ho una stringa come questa:?
$string = "betalphabetabeta";
restituisce solo 3 partite invece di 4.
ho provato a fare qualcosa con l'operatore =, ma io non riesco a coppie con l'operatore OR in modo corretto ...
Qualcuno ha qualche soluzione? Grazie per l'aiuto!
puoi pubblicare più del vostro codice, ad esempio la parte restituendo il numero di partite? – Perleone
[how-do-i-sostitutivo-sovrapposizione-partite-con-un-perl-regex] (http://stackoverflow.com/questions/6572189/how-do-i-sostituire-overlapping-matches-with-a -perl-regex) –
@mugenkenichi bene..la soluzione è troppo complessa lì..puoi usare 'lookahead' invece! – Anirudha