質問: お世話になっております。 正規表現についての質問です。 末尾が特定の文字列で終わらない、といった条件で処理を行いたいのですが、どのような方法があるでしょうか。 いろいろ調べてパターンを試したのですが、やりたいことを実現する方法がわかりませんでした。 背景として、とあるDBからデータをcsv出力し、データの集計を行いたいのですが、 一番後ろのカラムのデータが長すぎると、csv出力した際に途中で改行されて出力されてしまいます。 例) yyyy.mm.dd,abc,111,xxxxx yyyy.mm.dd,def,222,xxxxxxxx yyyy.mm.dd,ghi,333,xxxxxxxxxxx xxx yyyy.mm.dd,jkl,444,xxxxx ↑上記の例で、3レコード目が途中で改行され、4行目にきてしまっている これが数件なら手で直すのですが、70万レコードぐらいあり、手で直すには少々つらい状況です。 末尾は必ず決まった文字が入る仕様ですので、末尾がその文字でなかった場合、改行コードを削除するように 置換処理を考えております。 ※現状はsakuraのキーマクロで無理やり処理していますが、置換などできれいに処理したいと考えています お手数ですが、よろしくお願い致します。
回答: csvで改行されている、ということは「対象以外の文字」+「改行コード」を検索し、該当行の「改行コード」を削除できればOKですかね。 > > ※現状はsakuraのキーマクロで > > > ↑sakureエディタを使用している、という事なので、正規表現での一括置換で終わりじゃないですかね。 検索対象: 「([^x])\r\n」 変換後: 「$1」 ※改行文字は「CRLF」を想定して書いています。「LF」のみの場合はうまいこと対応してください。