投稿 2023年10月28日
更新 2023年10月28日
専門用語の数:少
正規表現を使用して検索すると、任意を文字列をヒットされることができますが、
置換をすると、ヒットする文字列がすべて置換後の文字列になります。
置換前の文字を残したまま置換をしたいと。
例えば…
・特定の箇所をダブルクォーテーションで囲みたい
・特定の箇所の区切り文字を変えたい
というのを例に紹介します。
2つ目をダブルクォーテーションで囲む
3つ目の文字と数字の間にアンスコを入れる
1,test_123,example1,321
2,example_1,test123,123
3,sample_12,sample1,999
1,"test_123",example_1,321
2,"example_1",test_123,123
3,"sample_12",sample_1,999
([a-z]+_[0-9]+),([a-z]+)([0-9]+)
"$1",$2_$3
どういう仕組みで置換されているかというと、
みそなのは「$1」です。
置換前にある()の中身が$1に代入されています。
左側から()を数えて、1つ目は$1、2つ目は$2…
と順番に代入されています。
紐づけがわかりやすいように、色付けすると以下のようになります
([a-z]+_[0-9]+),([a-z]+)([0-9]+)
1,test_123,example1,321
2,example_1,test123,123
3,sample_12,sample1,999
"$1",$2_$3
1,"test_123",example_1,321
2,"example_1",test_123,123
3,"sample_12",sample_1,999
個人的に使っている便利な使い方を紹介しておきます。
(.+),(.+),(.+),(.+)
1,test_123,example1,321
2,example_1,test123,123
3,sample_12,sample1,999
$2,$1,$4,$3
test_123,1,321,example1
example_1,2,123,test123
sample_12,3,999,sample1
(.+),(.+),(.+),(.+)
1,test_123,example1,321
2,example_1,test123,123
3,sample_12,sample1,999
$1,$2,$3,$4,$1
1,test_123,example1,321,1
2,example_1,test123,123,2
3,sample_12,sample1,999,3
(.+,.+),(.+,.+)
1,test_123,example1,321
2,example_1,test123,123
3,sample_12,sample1,999
$1,NULL,$2
1,test_123,NULL,example1,321
2,example_1,NULL,test123,123
3,sample_12,NULL,sample1,999
最初知ったときは衝撃が走りました。
これを知ってからというもの、作業が超効率化できました。
さらに、正規表現を調べるきっかけになって、正規表現が怖くなくなりました。
正規表現検索ができて、置換機能があるツールなら大体できると思うので、
是非活用してみてください。
以上、ここまで見ていただきありがとうございます。
皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。
コメント一覧