2021.03.16
パスワード管理ツール Bitwarden をセルフホスティングしている場合に、ユーザーとして利用するまでのイメージ
2018.02.01
その他正規表現での置換が便利だった
Mです。
文字列の置換をするときに
$1,$2,$3…という表記を使用することで、()でグループ化したものをそのまま置換に使用する事ができて非常に便利だったので記事にします。
たとえば
「getTestA();」と「getTestB();」のみを「getItem(A or B)();」としたいとき
1 2 3 |
getTest(A|B)\(\); ↓ getItem(); |
とするとAとBで異なる部分が必要な時には不可能ですが、
1 2 3 4 5 6 |
getTest(A|B)\(\); ↓ getItem$1(); ↓ getItemA(); getItemB(); |
$1という表現を使用することで、うまく置換することができます。
これを使うと例えば、
「setItem((Object)abc.getItem());」と「setItem((Object)def.getItem());」のみを
「setItem(abc.getItem());」と「setItem(def.getItem());」としたいとき
(ABCDEとABCFE を AB(D|F)E とするとき)
1 2 3 |
setItem\(\(Object\)(abc|def).getItem\(\)\); ↓ setItem\($1.getItem\(\)\); |
とできます。さらに、次のようにすると
1 2 3 |
(setItem\()\(Object\)(abc|def)(.getItem\(\)\))); ↓ $1$2$3 |
と表示できます。特に意味はありませんが、多数の選択肢を用意できるということです。
実際に役立った場面は、プロジェクトの一部の部分を一括で直したいときです。
基本的な置換をこの正規表現に任せ、残りの細かい部分は手作業で行ったり、
様々なパターンに対応した正規表現を用意することで全ての作業を一括置換に任せることもできます。
もちろん、確認作業などは手作業ですが・・・
こうすることで、機械的に処理を行うことができるので、
作業の手間の短縮や問題点が分かりやすく置換が漏れにくいというメリットが生まれます。
知っておくと便利で、知らないと損をする知識でした。
【テクノモバイルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
最近の記事
タグ検索
SNS共有