[英]Parsing CSV with a RegEx in java - escape double quote within cell
我正在尋找一個Java regex,它將在Excel單元格中轉義雙引號。
我已經遵循了這個示例,但是需要對正則表達式進行另一處更改,以使其能夠在一個單元格中轉義雙引號。
private final Pattern pattern = Pattern.compile("\"([^\"]*)\"|(?<=,|^)([^,]*)(?=,|$)");
示例數據:
“ A,B” , “ 2”大小“ , ” text1,text2,text3“
上面的正則表達式在2"
處失敗。
我希望輸出如下。無論外部雙引號是否存在,都沒關系。
“ A,B”
“ 2”尺寸”
“ text1,text2,text3”
我同意,使用正則表達式解析CVS並不是真正的最佳方法,但更好的模式是:
Pattern pattern = Pattern.compile("^\"([^\"]*)\",|,\"([^\"]*)\",|,\"([^\"]*)\"$|(?<=,|^)([^,]*)(?=,|$)");
這將僅在引號和逗號之后終止單元格值,或在命令和引號之后啟動它。
就像FJ評論的那樣,輸入數據不明確。 但是對於示例輸入,您可以嘗試
string.split("\\",\\"")
方法獲取String[]
。 之后,您將獲得一個包含3個元素的數組: [ "A,B, 2" size, text1,text2, text3" ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.