LoginSignup
28
34

More than 5 years have passed since last update.

正規表現の何が便利なのか、分からない人へ

Posted at

.は任意の一文字、*は直前の文字を0回以上繰り返す。

各記号が何を意味するかは調べれば分かるけど
それを使うとどんないいことがあるのか分からない。
そんな人向け。

いいことその1 全ての行を特定の文字で挟む

全ての行を置換文字の<b></b>の間に挟む。

gif1.gif

置換前:`hoge`
置換後:`<b>hoge</b>`

検索文字:(.+)
置換文字:<b>$1</b>

解説

検索文字
.+:任意の一文字を一回以上繰り返す、つまり一行全て
():グループ化

置換文字
$1:(秀丸、さくらなどは\1)とすると、グループ化した文字を取り出すことができる。

応用
$1はグループ化した1つ目という意味になるので、$2を使ってこんなことも可能。

置換前:hoge piyo
検索文字;(.+)\s(.+)
置換文字:<a href="$2">$1</a>

置換後:<a href="piyo">hoge</a>

いいことその2 全行の行頭に任意の文字を挿入

gif2.gif

全ての先頭に_を挿入する。

置換前:`hoge`
置換後:`_hoge`

検索文字:^
置換文字:_

解説

検索文字
^:行頭

置換文字
_:特に意味は無い普通の置換文字。

応用
当然行末で〜ということも可能。

置換前:hoge
検索文字;$
置換文字:_piyo

置換後:hoge_piyo

いいことその3 全行の先頭にある可変長文字の削除

gif3.gif

先頭にある可変長数値とスペースの削除

置換前:`10 hoge`
置換後:`hoge`

検索文字:^[0-9]+\s
置換文字:検索文字を削除したいので、置換文字無し

解説

検索文字
^:行頭
[0-9]+:0〜9までの数値の繰り返し、つまり任意の長さの数値
\s:スペース、タブなど

応用
^を外せば、先頭じゃない数値も削除できるし、[a-z]とすれば小文字の任意の文字を削除できるし、
当然純粋に検索することも可能。

28
34
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
34