我正在尝试找到字符串"标准高级版是"在字符串" 2015年,每月B部分标准保费 $ 104.90 "但我无法在猪身上这样做。
我正在尝试使用正则表达式
`PlanServiceEng = FILTER PlanService BY language == 'English' and contractid !='' and planid !='' and segmentid !='' and benefit !='' and (benefit MATCHES '.*Standard Premium is.*');`
但是当我试图找到' Premium'随着 在正则表达式下工作:
PlanServiceEng = FILTER PlanService BY language == 'English' and contractid !='' and planid !='' and segmentid !='' and benefit !='' and (benefit matches '.*Premium.*');
答案 0 :(得分:0)
您无法使用EqualsIgnoreCase()
功能
EqualsIgnoreCase()
函数用于比较两个字符串并验证它们是否相等。如果两者相等,则此函数返回布尔值true,否则返回值false。
PlanServiceEng = FOREACH PlanService GENERATE (language,benefit), EqualsIgnoreCase(benefit, 'Standard Premium is');
或者您可以尝试使用正则表达式函数REGEX_EXTRACT或REGEX_EXTRACT_ALL。
如果这对您有用,我尝试使用REGEX
..检查
此处%s
将是您要匹配的文字
b = FOREACH a GENERATE $0,$1,REGEX_EXTRACT_ALL($1,'.*%s.*') ;
此语句将添加另一个匹配且该字段为()
的字段。因此,为了获得匹配的数据,我们将运行一个过滤器。
filtered = FILTER b BY $2 is not null;