Stuart Halloway konumlarını Clojure içinde regex maçları eşleşmeleri bulmak için doğal yöntem olarak ömeğiKompakt Clojure düzenli ifade maçları için kod ve dize
(re-seq #"\w+" "The quick brown fox")
verir. Kitabında bu yapı bir eşleştirici üzerinde yineleme ile karşıttır. Eğer ilgili herkesin bir kibrit listesi varsa bu harika olurdu. Bununla birlikte, ne istersem ve dizideki pozisyonlarını istersem? Bunu yapmak, java.util.regex'deki mevcut işlevsellikten, orijinal dizideki her dizinin üzerinde bir dizi anlama gibi bir şeye başvurmaktan yararlanmamı sağlayan daha iyi bir yol var mı? Başka bir deyişle, bir gibi bir şey yazmak için istiyorum
(yeniden seq-haritası # "[0-9] +" "3a1b2c1d") olarak tuşlarıyla bir harita dönecekti
maçlar gibi pozisyon ve değerler
{0 "3", 2 "1", 4 "2", 6 "1"}
bir kaybolmamış kütüphanede bunun bazı uygulama zaten var mı yoksa bunu (kod may hatları da olmamalı) yazacak?
teşekkürler Brian. Belki re-rex kütüphanesinde yerini bulmak gerekir. –
Bu konuda biraz problemim var. (yeniden "ATAT" "GATATATGCATATACTT"), {9 "ATAT", 3 "ATAT", 1 "ATAT"} döndürmeli, ancak {9 "ATAT", 1 "ATAT"} döndürür. – boucekv
Çakışan eşleşmeleri saymak isterseniz, normal ifadeyi biraz değiştirin: (yeniden konum # "(? = (ATAT))" "GATATATGCATATACTT"), {9 "", 3 "", 1 ""} döndürür. Eşleşen metni geri almak isterseniz, (.group m) yerine (.group m 1) yapmanız gerekir. –