2014-03-03 154 views
0

我是豬新手。在我寫劇本我想執行類似這樣的操作:替換豬中的多個單詞

foreach X GENERATE REPLACE(word,'.*abc.*','abc') OR REPLACE(word,'.*def.*','def'). 

如果第一圖案則匹配abc被別人取代,如果第二個模式匹配,然後def被替換。但我想這個語法是不正確的。有人可以幫助我的語法?

+0

你想更換兩者如果他們都匹配?或者如果找不到'abc',你只想替換'def'?你真的想替換整個單詞嗎? –

+0

所以如果句子有pqabcpq,那麼它應該被替換爲abc。如果句子有iudefqw,則應該替換爲def。令牌只包含一個單詞,因此一次只能存在abc或def。所以我有一組令牌,例如。 (pqdsabceq.wqwowqabceqw,ewedefweqe),我應該得到(abc,abc,def)。 – Inquisitor

+0

好的。如果你有'(pqdsabceq.wqwowqabceqw,ewedefweqe,iluabcwedefagh)'?或者你能保證他們永遠不會同時發生? –

回答

1

有幾個方法可以做到這一點,但因爲如果正則表達式不匹配字符串,你只是讓你的字符串返回,這是相當緊湊:

Y = FOREACH X GENERATE REPLACE(REPLACE(word, '.*abc.*', 'abc'), '.*def.*', 'def'); 
+0

謝謝......那麼工作......真的很愚蠢,我不這樣想......反正謝謝你的回覆。 – Inquisitor