1;2;3
2;4;6
3;6;9
4;8;12
5;10;15
Mark up the table cells via
:%s/\([^;]*\);\?/<td>\1<\/td>/g
or
:%!ruby -ne "print gsub(/([^;\n]+);?/,'<td>\1</td>')"
so that you get
<
td
>
1<
/
td
>
<
td
>
2<
/
td
>
<
td
>
3<
/
td
>
<
td
>
2<
/
td
>
<
td
>
4<
/
td
>
<
td
>
6<
/
td
>
<
td
>
3<
/
td
>
<
td
>
6<
/
td
>
<
td
>
9<
/
td
>
<
td
>
4<
/
td
>
<
td
>
8<
/
td
>
<
td
>
12<
/
td
>
<
td
>
5<
/
td
>
<
td
>
10<
/
td
>
<
td
>
15<
/
td
>