Comment作業効率をあげる正規表現まとめ【プログラマ必見】プログラム、システム保守でよく正規表現を使用します。使っていないとすぐ忘れてしまうので、備忘録がてら残すことにしました。個人的によく使うのがこれです。DBのデータをCSVでやりとりすることが多いのですが、そのCSVからINSERT文を作る際に利用します。下記のようなCSVがあったとしましょう。"01","みかん","愛媛県""02","りんご","青森県""03","なし","福島県"上記のCSVをそのままSQLにしたいわけです。('03','なし','福島県');最初にデータの前にINSERT~を挿入します。(「^」は行頭を表す正規表現です。結果は下記のようになったはずです。これで前半部分はOK。("03","なし","福島県"行末尾文字の置換これも1と同じ目的で使用します。1で前半部分にINSERT文を挿入しました。あとは末尾に閉じかっこを入れたい。置換前$置換後);「$」は行末尾を表す正規表現です。結果は下記のようになったはずです。あとは使用するDBに応じてダブルクォーテーションをシングルクォーテーションに置換してください。("03","なし","福島県");変数代入箇所の検索これもよく使います。最近のIDEにはフォーマッターがついているため、変数代入の記述は下記のように整形されます。"test";「{変数名}␣=␣{値};」というような半角スペースが1文字入る形ですね。上記の場合は、代入箇所を探すのに正規表現は不要です。プロジェクトによっては、下記のようにインデントを合わせる文化が未だに残っています。ぼくは保守性が悪いから嫌いです。"test";こうなってくると正規表現の出番です。+=「var1」の後ろの半角スペースが1回以上出現するもの、という探し方にすれば解決します。変数比較箇所の検索これはほぼ上記と同じなので詳細は割愛します。下記のようなサンプルソースから代入箇所を含めず、比較箇所のみ抽出します。"1ijodeR";下記の条件とすることで、上記サンプルの1行目以外すべて抽出できます。今度は「一定の条件で検索するが、一部除外したい」という場合。下記のようなソースがあったとします。"2deR";探したいのはvar1の比較箇所、ただし、2との比較は探したくない。例題がイマイチですが、ソース量が膨大だと使う場面は結構あります。+[^2]キャレット「^」は先頭に使うと行頭文字を意味しますが、否定の意味でも使われます。することで上記サンプルの2~4行目が抽出できます。文字列を一部残しつつ置換するこんばんは。今日は文字列操作の小技を。文字列を置換する際に、正規表現を使用すると便利ですよね。mitosuya.netほかにも思いついたら追記します。コメントをキャンセルメールアドレスが公開されることはありません。