【正規表現】タブ区切りテキストを任意のタブ数ごとに改行させる正規表現

本ブログはアフィリエイト広告を利用しています

プログラミング
プログラミング
この記事は約2分で読めます。

とっちゃん@nyanco! です。

今回は複数のタブ記号で区切られた1行テキスト任意のタブ記号数ごとに改行させる正規表現の「検索文字列」と「置換文字列」についてというお話です。

肉玉にゃんこ

タブ数は簡単に任意の数値に変更できますにゃ~

スポンサーリンク

1行テキストに含まれる任意のタブごとに改行させる正規表現

早速ですが正規表現の「検索文字列」と「置換文字列」はこちら。例としてタブの数を「3」としています。

検索文字列

((?:[^\t]+\t){3})

解説

( ) … グループ化を行うための括弧。例の場合、1つのグループ全体がマッチとして扱われる
(?: ) … 非キャプチャグループで単なるグループ化目的。キャプチャは全体 ( ) でしているのでここではキャプチャは省略
[^\t]+ … タブ以外の文字の1回以上の繰り返しを示す( [^\t] でタブ以外の文字を表し、+ は1回以上の繰り返し)
\t … タブ文字自体を表す
{3} … 直前の要素(例では (?:[^\t]+\t) )が3回繰り返されることを示す

以上で、タブ以外の文字タブというグループ3回繰り返す文字列を1つのマッチとしてキャプチャするという正規表現となります。

置換文字列

$1\n

解説

$1 … キャプチャした1番目の文字列を呼び出す(\1 でもOK)
\n … 改行コード

以上で、検索文字列でマッチした文字列末尾に改行を加えた形で置換するという正規表現となります。

実行するとこんな感じ

▼サンプルとして、以下のようにタブで区切られて猫の種類が14種類記述されているテキストを用意しました。このテキストに正規表現を実行すると…

▼はい、このように一瞬で3つのタブ記号ごとに改行させることができました!

おわりに

Excelやスプレッドシートの関数を使えば同じようなことはできそうですが、勉強も兼ねて正規表現でチャレンジしてみました。

肉玉にゃんこ

筆者の正規表現のレベルがアップしましたにゃ〜!

本記事がどなたかの参考になれば幸いです。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

コメント