0
我是猪新手。在我写剧本我想执行类似这样的操作:替换猪中的多个单词
foreach X GENERATE REPLACE(word,'.*abc.*','abc') OR REPLACE(word,'.*def.*','def').
如果第一图案则匹配abc
被别人取代,如果第二个模式匹配,然后def
被替换。但我想这个语法是不正确的。有人可以帮助我的语法?
我是猪新手。在我写剧本我想执行类似这样的操作:替换猪中的多个单词
foreach X GENERATE REPLACE(word,'.*abc.*','abc') OR REPLACE(word,'.*def.*','def').
如果第一图案则匹配abc
被别人取代,如果第二个模式匹配,然后def
被替换。但我想这个语法是不正确的。有人可以帮助我的语法?
有几个方法可以做到这一点,但因为如果正则表达式不匹配字符串,你只是让你的字符串返回,这是相当紧凑:
Y = FOREACH X GENERATE REPLACE(REPLACE(word, '.*abc.*', 'abc'), '.*def.*', 'def');
谢谢......那么工作......真的很愚蠢,我不这样想......反正谢谢你的回复。 – Inquisitor
你想更换两者如果他们都匹配?或者如果找不到'abc',你只想替换'def'?你真的想替换整个单词吗? –
所以如果句子有pqabcpq,那么它应该被替换为abc。如果句子有iudefqw,则应该替换为def。令牌只包含一个单词,因此一次只能存在abc或def。所以我有一组令牌,例如。 (pqdsabceq.wqwowqabceqw,ewedefweqe),我应该得到(abc,abc,def)。 – Inquisitor
好的。如果你有'(pqdsabceq.wqwowqabceqw,ewedefweqe,iluabcwedefagh)'?或者你能保证他们永远不会同时发生? –