我從CSV文件中獲得一行,其中"
作爲字段封閉器,,
作爲字段分隔符作爲字符串。有時在打破字段外殼程序的數據中有"
。我正在尋找一個正則表達式來刪除這些"
。Perl正則表達式:如何從CSV行中刪除引號內的引號
我的字符串如下所示:
my $csv = qq~"123456","024003","Stuff","","28" stuff with more stuff","2"," 1.99 ","",""~;
我看了this但我不知道如何告訴它:只可以卸下
- 沒有之初報價字符串
- 不在字符串的末尾
- 之前沒有
,
- 後面沒有
,
我設法告訴它同時具有這行代碼刪除3和4:
$csv =~ s/(?<!,)"(?!,)//g;
不過,我不適合在那裏^
和$
因爲向前看和向後看都不喜歡寫成(?<!(^|,))
。
有沒有辦法實現這一點,除了分割字符串和刪除每個元素的引號之外的正則表達式?
有兩種CSV正則表達式:那些現在失敗和那些將失敗的CSV正則表達式。 –