misc.log

日常茶飯事とお仕事と

正規表現メモ

仕事で使った正規表現メモ。いずれもサクラエディタで処理しています。もっと効率の良い方法などもあるかもしれませんが、とりあえず客先に提出する大量データの変換を期限内に行うことを優先しているので「動けばOK」というものになっています。参考にされる場合はその辺ご了承くださいね。

詳説 正規表現 第3版

詳説 正規表現 第3版

XMLタグに挟まれたピリオド区切りの時刻をコロン区切りにかえる

XMLデータに含まれるピリオド区切りの時刻「12.34.56」のようなものを「12:34:56」に変更するのに使いました。

変換元対象パターン
>([0-9][0-9])\.([0-9][0-9])\.([0-9][0-9])<

変換先
>$1:$2:$3<

SQL文の行末コメントをインライン形式に変換する

SQLではハイフン2個を連ねるとその後ろがコメント文になりますが、これを「/ コメント /」のようなスラッシュ+アスタリスクのコメントに置き換えます。どこで利用したかというと、テキストファイルに記述されたSQL文をVBAで取り込んで、1行の文字列としてADODBのライブラリで処理した際に、行末コメントがエラーの元になってしまうのを回避するために使いました。

変換対象パターン
 --(.*)$

変換先
 /* $1 */

変換対象は先頭に空白入れてますがそのへんは適宜調整してください。

SQLの行頭に空白を入れる

改行を多数含んだSQL文テキストの行頭がアルファベットかカンマの場合に、行頭に空白を挿入します。これも複数行SQLVBAなどで取り込んで1行のSQLにした際に、改行を取った瞬間、ステートメント同士がくっついてしまったのを補正するために空白を行頭にいれました。その際の正規表現です。

変換対象パターン
^([,A-Za-z])

変換先
 $1

変換先の冒頭は空白です。空白に続けて、対象パターンでヒットした文字列(パターン中、括弧で囲われた部分に該当する文字列)を$1として当てはめ、リプレースします。