0

良いサンプルを見ましたが、私の問題に適応させることができません。

次のようなCSV 行から囲んでいるフィールドのみ を削除したいと思います。"

" kkl ";"aa bb D";;12 "AA";;"SSS"-;" gg 12";" vv";"sdqs ";

期待される結果 :

 kkl ;aa bb D;;12 "AA";;"SSS"-; gg 12; vv;sdqs ;

パターン ツールとマッチャー ツールを使用する

4

2 に答える 2

5

\"このソリューションは、引用符で囲まれた文字列にエスケープされた引用符がないことを前提としています

.replaceAll("(?<=^|;)\"([^\"]*?)\"(?=;|$)", "$1")

これらの場合、あなたも を取り除きたいと思います": "sdfkjhksdf",;;;"dffff"

"別の解決策では、所有量指定子を使用します。その効果は、引用部分内に現れない仮定に依存します。

.replaceAll("(?<=^|;)(?:\"(.*?)\"){1}+(?=;|$)", "$1")
于 2012-06-26T09:36:00.987 に答える
2

CSV境界の外側で貪欲に一致しないようにするための@nhahtdhの正規表現への小さな変更:

.replaceAll("(?<=^|;)\"([^;]*)\"(?=;|$)", "$1");
于 2012-06-26T09:50:31.297 に答える