良いサンプルを見ましたが、私の問題に適応させることができません。
次のようなCSV 行から囲んでいるフィールドのみ を削除したいと思います。"
" kkl ";"aa bb D";;12 "AA";;"SSS"-;" gg 12";" vv";"sdqs ";
期待される結果 :
kkl ;aa bb D;;12 "AA";;"SSS"-; gg 12; vv;sdqs ;
パターン ツールとマッチャー ツールを使用する
\"
このソリューションは、引用符で囲まれた文字列にエスケープされた引用符がないことを前提としています
.replaceAll("(?<=^|;)\"([^\"]*?)\"(?=;|$)", "$1")
これらの場合、あなたも を取り除きたいと思います"
: "sdfkjhksdf"
,;;;"dffff"
"
別の解決策では、所有量指定子を使用します。その効果は、引用部分内に現れない仮定に依存します。
.replaceAll("(?<=^|;)(?:\"(.*?)\"){1}+(?=;|$)", "$1")
CSV境界の外側で貪欲に一致しないようにするための@nhahtdhの正規表現への小さな変更:
.replaceAll("(?<=^|;)\"([^;]*)\"(?=;|$)", "$1");