Umarım bu soruyu zaten bir başkası tarafından yaratmadım, çünkü sitenin hemen her yerine bakmaya çalıştım ama bir cevap bulamadım.İki örtüşen paternin Perl ile eşleşmesi
Sorunum: Ben her olay tek veya bir dizede başka model arasında konumunu tespit etmek için olan bir PERL komut yapıyorum. Örneğin
:
$string = "betaalphabetabeta";
$pattern = "beta|alpha";
Bu durumda, ben 4 eşleşmeleri dönmek benim programı istiyorum. ("Beta", "alfa")
$string =~ /beta|alpha/g;
Ancak zaman iki desen, çünkü parça, kısmen üst üste edilir:
bu kolayca Bir şekilde, bu gibi eşleme operatörü kullanılarak elde edilebilir olduğu düşünülmektedir yeni gönderdiğim kodun ikinci kalıpla çakıştığı zaman ilk kalıbın oluşumunu atlar.E.g. ? Ben böyle bir dize varsa: sadece bunun yerine = operatörü ile bir şeyler yapmaya çalıştık 4.
3 eşleşmeleri döndürür
$string = "betalphabetabeta";
ama çift yönetemez OR operatörü ile doğru şekilde ...
Herhangi bir çözümü olan var mı? Yardım ettiğin için teşekkür ederim!
örneğin, eşleşme sayısını dönen kısmını kodunuzun daha gönderebilir? – Perleone
[nasıl-yerine-i-yerine-örtüşen-ile-a-perl-regex eşleşir] (http://stackoverflow.com/questions/6572189/how-do-i-substitute-overlapping-matches-with-a -perl-regex) –
@mugenkenichi iyi .. çözüm çok karmaşık var ... yerine 'lookahead' kullanabilirsiniz! – Anirudha