Eğer EqualsIgnoreCase()
kullanılamaz: Ben çalıştığını regex altında sadece 'Premium' bulmaya çalışıyorum zaman
ben regex
`PlanServiceEng = FILTER PlanService BY language == 'English' and contractid !='' and planid !='' and segmentid !='' and benefit !='' and (benefit MATCHES '.*Standard Premium is.*');`
ile çalışıyorum ama am işlev
İki dizeyi karşılaştırmak ve eşit olup olmadığını doğrulamak için EqualsIgnoreCase()
işlevi kullanılır. Her ikisi de eşitse, bu işlev Boolean değerini döndürür, aksi takdirde false değerini döndürür.
PlanServiceEng = FOREACH PlanService GENERATE (language,benefit), EqualsIgnoreCase(benefit, 'Standard Premium is');
Yoksa ifade işlevlerinin REGEX_EXTRACT veya REGEX_EXTRACT_ALL deneyebilirsiniz. Eğer Burada %s
bunu bir maç olacak başka bir alan katacak
b = FOREACH a GENERATE $0,$1,REGEX_EXTRACT_ALL($1,'.*%s.*') ;
Bu ifade eşleştirmek istediğiniz metni şöyle olur bu işler ve bu alan ise
Ben REGEX
..check ile bir şeyler denedik ()
. Böylece eşleşen verileri elde etmek için bir filtre çalıştıracağız.
filtered = FILTER b BY $2 is not null;