2024.11.14
いまさらNode.jsを知ろう~環境構築も~
2018.02.01
その他正規表現での置換が便利だった
Mです。
文字列の置換をするときに
$1,$2,$3…という表記を使用することで、()でグループ化したものをそのまま置換に使用する事ができて非常に便利だったので記事にします。
たとえば
「getTestA();」と「getTestB();」のみを「getItem(A or B)();」としたいとき
getTest(A|B)\(\); ↓ getItem();
とするとAとBで異なる部分が必要な時には不可能ですが、
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 とするとき)
setItem\(\(Object\)(abc|def).getItem\(\)\); ↓ setItem\($1.getItem\(\)\);
とできます。さらに、次のようにすると
(setItem\()\(Object\)(abc|def)(.getItem\(\)\))); ↓ $1$2$3
と表示できます。特に意味はありませんが、多数の選択肢を用意できるということです。
実際に役立った場面は、プロジェクトの一部の部分を一括で直したいときです。
基本的な置換をこの正規表現に任せ、残りの細かい部分は手作業で行ったり、
様々なパターンに対応した正規表現を用意することで全ての作業を一括置換に任せることもできます。
もちろん、確認作業などは手作業ですが・・・
こうすることで、機械的に処理を行うことができるので、
作業の手間の短縮や問題点が分かりやすく置換が漏れにくいというメリットが生まれます。
知っておくと便利で、知らないと損をする知識でした。
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索