Mam nadzieję, że moje pytanie nie zostało już zadane przez kogoś innego, ponieważ próbowałem wyglądać prawie wszędzie na stronie, ale nie mogłem znaleźć odpowiedzi.Dopasowanie dwóch zachodzących na siebie wzorców z Perlem
Mój problem jest: Robię skrypt Perla, który ma wykrywać pozycję każde wystąpienie jednego lub inny wzór na sznurku.
Na przykład:
$string = "betaalphabetabeta";
$pattern = "beta|alpha";
W tym przypadku, chciałbym mój skrypt do powrotu 4 mecze.
mi, że, że mogą być łatwo osiągnięte za pomocą operatora dopasowania w jakiś sposób jak poniżej:
$string =~ /beta|alpha/g;
jednak od swoich dwóch wzorów („alfa”, „beta”) częściowo nakładających się kawałek kodu, który właśnie napisałem, pomija wystąpienie pierwszego wzorca, gdy pokrywa się z drugim.
E.g. jeśli mam ciąg jak ten:
$string = "betalphabetabeta";
tylko zwraca 3 mecze zamiast 4.
Starałem się zrobić coś z = operatora, ale nie uda się para to z operatorem OR w prawidłowy sposób ...
Czy ktoś ma jakieś rozwiązanie? Dzięki za pomoc!
można pisać więcej kodu, na przykład część powracającego liczbę meczów? – Perleone
[how-do-i-substitute-overlapping-matches-with-a-perl-regex] (http://stackoverflow.com/questions/6572189/how-do-i-substitute-overlapping-matches- with-a -perl-regex) –
@mugenkenichi well..to rozwiązanie jest zbyt skomplikowane .. zamiast tego możesz użyć 'lookahead'! – Anirudha