正規表現についての質問ですが、エディタということなのでマクロ機能を使用してはいかがでしょうか。
(1)メニューの「マクロ」から「編集」を選択し、そこに下記のコードをコピーします。
document.selection.StartOfDocument(false); document.selection.Replace("^","<TR><TD>",eeFindNext | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("$","</TD></TR>",eeFindNext | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace(",,",", ,",eeFindNext | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace(",","</TD><TD>",eeFindNext | eeReplaceAll | eeFindReplaceRegExp); document.selection.StartOfLine(false,eeLineView | eeLineHomeText); document.selection.NewLine(1); document.selection.LineUp(false,1); document.selection.Text="<TABLE>"; document.selection.EndOfDocument(false); document.selection.NewLine(1); document.selection.Text="</TABLE>";
(2)同じくメニューの「マクロ」から「名前をつけて保存」を選び、保存します。
(3)対象となるCSVファイルを開き、
(4)メニューの「マクロ」から、一番下にある先ほど保存したマクロを選択します。
これで、CSV がHTMLのテーブル形式になるかと思いますが、どうでしょうか。
正規表現では複数ステップで実行すればできると思いますが、カラム数が不定の場合
表現が難しいかと思います。
http://e-words.jp/w/E382ADE383BCE3839CE383BCE38389E3839EE382AFE3...
今回、EmEditorで変換を行うということですので、以下のCSV形式のテキストをEmEditor Professional 7.00でテストを行いました。
"a","b","c","d"
1,2,3,4
もしご希望の動作ができなかったらごめんなさい。
まず、テキストの一行目と最後の行は空白にしておいてください。
次に「置換」ダイアログで、「正規表現を使用する」にチェックを入れてください。
次に、「検索する文字列:」に「"?\n"?」を入力、「置換後の文字列」に「</td></tr>\n<tr><td>」(都合上、一部大文字になっていますが、すべて小文字に直してください)を入力し、「すべて置換」してください。
次に、「検索する文字列:」に「"?,"?」を入力、「置換後の文字列」に「</td><td>」(都合上、一部大文字になっていますが、すべて小文字に直してください)を入力し、「すべて置換」してください。
これで、
</td></tr>
<tr><td>a</td><td>b</td><td>c</td><td>d</td></tr>
<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
<tr><td>
(都合上、一部大文字にしています)
という内容になっていると思います。
必要に応じて、一行目と最後の行の余分なタグを削除したり、
my @data;
push(@data, "1,,3,4,5,9\n");
push(@data, "1,2,,4,5,9\n");
push(@data, "1,2,3,,5,9\n");
push(@data, "1,2,3,4,,9\n");
push(@data, "1,2,3,4,5,9\n");
foreach my $line (@data){
$line =~ s/([^,]*)[,\n]/
$line =~ s/^(.*)$/
print $line . "\n";
}
これでどうでしょう。。。