2010-04-16 16 views
6

this question, .NET regexes can access individual matches within a repeated capturing group'dan öğrendiğim gibi. Kelimelerin bir dizeye \b(\w+\s*)+ gibi bir normal ifade uygularsanızHangi normal ifadeler yakalanır (yakalama gruplarının aksine)?

I. e., Sadece son söz \1 veya Match.Groups(1).Value saklanan, ama tüm bireysel erişmek Match.Groups(1).Captures kullanarak regex iterated maçları edilecektir.

Bunu .NET'in yanı sıra destekleyen başka normal ifade var mı?

+1

gerçekten! Bunu bilmiyordum. +1 – YOU

+0

Jan Goyvaerts – YOU

cevap

4

Bildiğim kadarıyla, yalnızca .NET ve Perl 6 bu özelliği sunuyor.

+0

için çağrı olabilir Perl 6 için teşekkürler. JGSoft motoru biraz revizyon için gibi görünüyor. Yakalar bana yararlı bir özellik gibi geliyor. Yinelemeli/dengeli ifadeler İyi Bir Şey mi yoksa normal ifadeler tamamen sürdürülemez mi olsun hala çitin üzerindeyim. –

+0

Tekrarlama * veya * ara yakalamalara ihtiyacınız varsa, normal ifadeleri kullanmamanız gerektiğini düşünüyorum. En azından Perl 5 dönemi regexleri değil; Perl 6, regex sözdiziminde önemli değişiklikler içeriyor, bunlar gibi gelişmiş özellikleri kullanmayı kolaylaştırıyor ve yazdıklarınızı okuyabiliyorsunuz. –

+0

Perl 6 regex dokümanlarına baktım. Vay, bu * * Perl 5'ten bir değişiklik oldu ... –

İlgili konular