2009-06-24 21 views
0

私はひどく整形されたタブ区切りの "CSV"を整理しようとしています。正規表現で有効なCSVを作成する

私はすべてのフィールドを引用したいと思います。現在のところそのうちのいくつかだけです。私は、タブでタブを通過し、必要に応じて引用符を追加しようとしています。

このRegExを使用すると、すべてのタブが表示されます。

\t 

このRegExでは、ENDで終わらないタブが"で表示されます。

\t(?!") 

"で始まらないタブを取得するにはどうすればよいですか?

+0

、ない「CVS」、それについて考えてみると、主な動機は、もっと楽しくなることです。 – ephemient

+0

正規表現はすべての言語で同じように実装されていません。あなたはどちらを使用して指定してください? – Oorang

+0

「あなたには2つの問題があります。 –

答えて

2

使用負の後読み:それは一回の発生がいた場合、この種の問題のために一般的に(?<!")\t

3

は、私が所望の出力を生成するために優れて機能や他のアプリケーション(?SSIS T-SQL)を使用します。

一般的な目的の正規表現は、通常、奇妙な例外に実行されます。正規表現正規表現は、通常、正規表現がキャッチしなかったグループを見逃す可能性があります。

これが定期的に発生する場合は、ソースで問題を解決したり、特別なユーティリティプログラムを作成して問題を解決してください。

+0

私は理想的な解決策であることに同意します。 CSVのソースで修正されてしまいますが、残念ながら私はそれを制御できません。このプロセスは、ユーザーがこの厄介なファイルをアップロードし、魔法のようにインポートされることを期待しているので自動化されます。 – Chap

+0

正規表現は最高の解決策はあなたのユーザーが "創造的"になるまでですエラーを起こさずに正常に動作する正規表現のリスクを実行しても、結果は文字化けすることがあります。 – hova

1

私は通常、データをクリーンアップするための小さなプログラムを書いています。そのようにして、実行後に実際に正しく変換されたことを確認するための検証を追加することもできます。私は正規表現に対して何もないが、しばしば私の場合、小さなプログラムを書くより正規表現を理解するのに時間がかかります。 :)

編集: - 私のためにあなたは、おそらく「CSV」を意味し、少なくとも:)

+0

私も通常、 python、scala、nodeなどのように勉強しています... – opensas

関連する問題