技術メモ

技術メモ

テキストから指定の文字列を含む行を残し、それ以外の行を削除する手順(否定的先読みの正規表現)

指定文字を含む行を削除することは簡単な正規表現でできます。しかし指定文字列を含む行を残して、それ以外の行を削除する正規表現は、案外思いつかなかったりするので手順として残しておきます。実行環境今回はサクラエディタと呼ばれる、ボランティアベースで開発されている素晴らしいテキストエディタで正規表現を実行しております。ただ、正規表現さえ使用可能であれば、エディタは何でも良いかと思います。解決したい事象指定文字列を含む行は残し、それ以外の行は削除します。ここではerror行のみ抽出して、それ以外の雑多な行を削除するlog抽出の例を考えてみます。(ここまで書いてて、そういえばGrepすれば簡単じゃんと思ったけど)事象の例例としては下記の通り、文字列が並んでいるとします。※分かりやすくするため、行数は短めで適当な内容です。あいうえお error xxxかきくけこ normal end xxxさしすせそ error yyyたちつてと warning xxxなにぬねの error zzzはひふへほ warning xxxまみむめも normal end xxx下記の通り、error行以外を削除するのが今...
技術メモ

テキストの各行をコピーして2行ずつに増やす正規表現を紹介

テキストの各行をコピーして2行ずつに増やす正規表現を紹介します。実行環境今回はサクラエディタと呼ばれる、ボランティアベースで開発されている素晴らしいテキストエディタで正規表現を実行しております。ただ、正規表現さえ使用可能であれば、エディタは何でも良いかと思います。解決したい事象例を見たほうが分かりやすいかと思われますので、下記の通り例を示します。事象の例例としては下記の通り、文字列が並んでいるとします。※分かりやすくするため、行数は短めで適当な内容です。あいうえおかきくけこさしすせそ上記の文字列に示した各行を、コピーして2行ずつにすることを考えます。あいうえおあいうえおかきくけこかきくけこさしすせそさしすせそ使用する正規表現エディタの「置換前」および、「置換後」の指定で、下記の正規表現を指定します。サクラエディタの場合、Ctrl+Rで置換ダイアログが出てきますので、そこで下記の値を指定します。(なおサクラエディタの場合、この際「正規表現」のチェックボックスにチェックを入れないと正規表現で認識されないので注意が必要です。)置換前^(.+)$行の先頭から行の末尾までのすべての文字列を抽出し...
技術メモ

都道府県にマッチする正規表現をいくつか考えてテストしたので紹介

都道府県にマッチする正規表現をいくつか考えて、テストしたので紹介します。テスト環境今回はサクラエディタと呼ばれる、ボランティアベースで開発されている素晴らしいテキストエディタで正規表現を実行しております。都、道、府、県の4つでまとめた「都道府県検出正規表現」コード(東京都|北海道|(?:京都|大阪)府|.{2,3}県)47都道府県を、「都、道、府、県」の4行政機関ごとにまとめた正規表現です。テスト結果「下関県」や「山本県」などの間違いが混じっているとヒットしまう欠点があります。ただ、選択メニュー等から吐き出された文字列を結合している住所の場合はこれで十分です。可読性がやや落ちるため、正規表現の説明は少し大変かもしれません。「県」のみ、ひとまとめにした「都道府県検出正規表現」コード(東京都|北海道|大阪府|京都府|.{2,3}県)47都道府県のうち、京都府と大阪府はまとめず”県”のみ1つにまとめています。「都道府」は数が少ないので完全表記で、県は2,3文字に収まっていればOKという内容の正規表現です。テスト結果これも県はざっくりとした確認なので「下関県」や「山本県」にヒットしてしまいます...
技術メモ

改行だけの行を削除して行を詰める正規表現を紹介

テキストエディタの改行だけの行を削除して詰めたい場合に、使用するテクニックを紹介します。手作業でやっている人を良く見かけて、案外知らない人が多かったりするので、紹介してみます。解決したい事象下記のキャプチャの青矢印で示したような空行を、削除して行を詰めます。ここではサクラエディタを例に紹介しますが、エディタについては正規表現が使用できればなんでもOKです。解決したい空行が含まれるテキストの例改行コードのみの行一括削除手順置換の実行前テキストエディタの置換メニューを開きます。(Ctrl+R)置換ダイアログで置換前と置換後に下記の指定をして、全ての行に置換を実施します。入力項目入力値説明置換前^\r\n行頭の次の文字がCRLFの改行コードになっている行を指定しています。置換後何も指定していません。つまり置換前にヒットしたものを空に置換することによって、削除します。置換ダイアログ入力値置換の実行後置換の実行後は下記のキャプチャの通りになりました。全て置換すると空行が削除され、文章がある行だけになります。数文字程度の正規表現を覚えておくだけで簡単にできる作業ですが、覚えておくだけで作業効率が格...
技術メモ

改行コードの不揃いを正規表現で統一させる方法を紹介

改行コードがバラバラのテキストファイルを、正規表現によって統一する方法を紹介します。解決したい事象改行コードがバラバラのテキストをCRLFかLFのどちらかに統一します。ここではサクラエディタを例に紹介しますが、エディタについては正規表現が使用できればなんでもOKです。例以下の画像では、青矢印の個所の改行コードが他と異なっています。改行コード統一手順置換前テキストエディタの置換ダイアログを開きます。(Ctrl+R)置換ダイアログの置換前と置換後に下記の指定をして、全ての行に置換を実施します。※ダイアログの「正規表現(E)」にチェックを入れるのを忘れないでください。入力項目入力値説明置換前\r\nCRLFの改行コードを指定置換後\nLFの改行コードを指定置換ダイアログ入力値置換後全て置換を実施すると、下記の画像の通りすべての改行コードが全てLFに統一されます。CRLFに統一したい場合上記の場合はLFに統一されています。Windowsの改行コードであるCRLFに統一したい場合は続けて、下記の手順を実行します。置換前置換ダイアログの置換前と置換後に下記の指定をして、全ての行に置換を実施します。...