2016-04-18 87 views
1

我有正則表達式的問題。正則表達式,匹配兩個字符之間的倍數字符

文字:

alpha,beta,charlie,"delta delta,delta,",echo 

需要的輸出:

我想用空格來代替,如果是雙引號裏面" "

alpha,beta,charlie,"delta delta delta ",echo 

我已經試過".*,.*",但雙引號內的所有文本匹配,而不是隻,

有人能幫忙嗎?

+3

什麼是你的正則表達式花果/語言? – anubhava

+0

不知道正則表達式的味道,不可能給出最好的答案,或者甚至是多多少少的工作。 –

回答

0

你問的是很難(或不可能)用一個單一的正則表達式。

我建議首先通過像"[^"]*"這樣的一個正則表達式匹配所有內容,然後簡單地遍歷編程語言中的匹配輸出,用空格替換所有逗號。

0

給一個嘗試這種gnu解決方案:

gawk -F \" -v OFS=\" '{ 
for (i=2;i<=NF;i+=2) { 
    gsub(/,/," ",$i); 
} 
print; 
}' 

測試:

printf "alpha,beta,charlie,\"delta delta,delta,\",echo\n" | gawk -F \" -v OFS=\" '{ 
for (i=2;i<=NF;i+=2) { 
    gsub(/,/," ",$i); 
} 
print; 
}' 
alpha,beta,charlie,"delta delta delta ",echo 
相關問題