Groovy の replaceAll 機能に問題があります。
私は CSV パーサーの割り当てに取り組んでおり、コンマをスペースに置き換えようとしています。スクリプトを実行するたびにコンマが含まれたままデータが返されるため、実際にそれらを置き換える構文を理解できません。
class ActAsCSV {
def headers = []
def contents = []
def read() {
def file = new File('C:/Users/Alex/Desktop/csv.txt')
def lines = file.readLines()
headers = lines[0].split(",")
def last = lines.tail()
def i = 0
while (last[i] != null){last[i].replaceAll(/,(?=([^\"]*\"[^\"]*\")*[^\"]*$)/' ')
println last[i]
i++}
}
}
alex = new ActAsCSV()
alex.read()
CSV ファイルは次のようになります: Year,Make,Model
1997,Ford,E350
2000,Mercury,Cougar
ヘッダー配列は想定どおりに機能します。現在のコードの後の出力は
1997,Ford,E350
2000,Mercury,Cougar
私が試してみました
"、"
'、'
/','/
/、/
オンラインで見つけたさまざまな正規表現パターン。文字通り何も機能していません。何が欠けているのかわかりません。replaceAll はそれほど難しくないと思いました。ドキュメントに目を通しましたが、文字列、クロージャー コンボを適用する方法がわかりません。