2016-06-14 14 views
1

インポートするデータを持つCSVがあります。区切り文字はカンマです。行または行に2つの電子メールがある場合は、カンマで区切られているので、インポートはその時点で失敗します。 私は、同じ行にある2つのatの間にコンマを置くことを考えましたが、どのようにすればいいのか分かりません。 代替ソルーションをお持ちの場合は、それも歓迎されます!おかげさまで メモ帳のコンマを置き換えてください。++

例:

ENTERPRISE1 S.L.,,ENTERPRISE1,999461678,,,,,,[email protected], [email protected],Spain,,, 
ENTERPRISE2 S.A.,,ENTERPRISE2.,999859177,,,,,,[email protected],Italy,,, 
+0

私はnotepad ++を使用していないので、マクロを書く方法はありません(可能な場合)。しかし、単純な擬似コードは次のようになります: 1現在の行で何個の@を取得しますか? 2つ以上の@が存在する場合、コンマと@位置を取得します。 3番目の@ position> emails> last @ position – Lati

+0

可能であれば、ファイルの構築方法を変更する方が良いでしょう。メールを別の文字で区切るカンマを変更します。 – Toto

答えて

0

を失っ避けることができますメールの欄にのみ表示されます。を検索パターンに、$1$2を置き換えることができます。これにより、列内の3つ以上のメールも正しく処理されます。もちろん、と$2の間にセパレータを置くこともできます。$1;$2

アクションhereで見ることができます。

+0

@Destrif私は本当にエラーが表示されません - 正確に何を意味するのですか? –

+0

@Destrifええ、結果は正しいです。 –

+0

申し訳ありませんが、それはうまくいきます:) – Destrif

-1

はあなたの例では、必ず複数の電子メールアドレスを分離するコンマの後の空きスペースを持っているように見えます。
これは一般的なルールで、 "、"(カンマ+空白)文字列をセミコロンのような別のセパレータで置き換える必要があります。ctrl + hを使用してreplace関数を呼び出します。

+0

@BrianTompsettこんにちは、なぜ私の答えをdownvoteしましたか? –

+0

私はしませんでした。私はそのレビューでただ編集しました。すべての投票は匿名であるため、誰がどの投票方法で投票したのかを知ることはできません。 –

+0

ああ、よろしくお願いします。編集していただきありがとうございます:) –

0

あなたはメモ帳でそれを行うことができます。

検索フィールド:

([^@][email protected][^,]+)\s*,\s*([^@][email protected][^,]+) 

置き換えフィールド:

\1|\2 

チェックの正規表現のチェックボックス

ので

[email protected], [email protected] 

は次のようになります。

[email protected]|[email protected] 

これはあなたのコラム組織を維持させる、およびデータを処理し、どのデータがどのエスケープとの@ -charを使用していない、あなたの考える

0

もう1つの方法は、正しいCSV書式を使用することです。区切り文字を含むフィールドの前後に二重引用符を使用します。

([^,][email protected][^,]+,[^,][email protected][^,]+) 

置換:

"\1" 

を(正規表現がdestrif's answerから適応)。

関連する問題