私は次のような部分文字列を置き換えようとしています
Education|AAA|BBB|CCC|DDD|EEE
AAA|Educator|CCC|DDD|EEE
ここで、
Education
または
Educator
パイプで区切られた文字列の任意の位置に配置できます。最大で1回または0回しか存在しません
それらを
Educator/Education
に置き換える必要があります
私が欲しいのは
教育者/教育| AAA | BBB | CCC | DDD | EEE
AAA |教育者/教育| CCC | DDD | EEE
これは
Education
の最初のパスで機能します
、私は得る
Educator/Education|AAA|BBB|CCC|DDD|EEE
AAA|Educator|CCC|DDD|EEE
しかし、
Educator
を置き換える2番目のパス
、私は得る
Educator/Education/Education|AAA|BBB|CCC|DDD|EEE
AAA|Educator/Education|CCC|DDD|EEE
ReplaceNth関数のRegExパターンは異なると思いますが、本来あるべきものを取得できません
これは、Google Scriptでの限られた能力で思いついたもので、ほとんどが検索から一緒になってから得たものです
ありがとう
編集:コメントで指定されたWiktorsソリューションで更新
function FRCrit_n(){
FRCrit("Elements", "Combined-What Are The Primary Role(s) Being Play?");
}
function FRCrit(shtName,cheader){
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(shtName);
var data = sh.getDataRange().getValues();
var col =HTN(shtName,cheader)-1; //Header to column index
for(n=1;n<data.length;++n){
data[n][col] = data[n][col].replace(/\bEducat(?:or|ion)\b/g, 'Educator/Education')[col],"Education","Educator/Education",1)
}
sh.getRange(1,1,data.length,data[0].length).setValues(data);
}
回答 1 件
関連記事
- GoogleスプレッドシートスクリプトgetUsername()の値をイニシャルに置き換えます
- Googleスプレッドシート+アプリスクリプト:showDialogボックスを使用して値を見つけて置き換えます
- textreplacegoogleアプリスクリプトの正規表現が機能していません
- Google AppsScriptスプレッドシートからスクリプトにアクセスする方法
- Googleスプレッドシートスクリプト:空でないターゲットセルを上書きせずに、あるシートから別のシートに範囲をコピーする方法
- Powershellは正規表現のインポートCSVファイルを置き換えます
- Google Sheets + Apps Script + Webapps:既存の行データをプルして編集し、行を更新します
- Googleスクリプトが「予期しない文字列エラー」をスローしています
- メール本文のキーワードに基づいてさまざまな自動返信を送信するGoogleApps Script
- Google AppsScriptを使用してPDFでGoogleドキュメントをエクスポート/変換する方法は?
正規表現の構文では、垂直バーを使用して「or」条件を作成し、複数のものを一度に検索できます。コードを必要とせずに、G Suite Sheetsでこれをテストできます。
あなたが探したいと思う
教育|教育者
で置き換えます
教育/教育者
結果に満足したら、コードに戻すことができます-同じ正規表現構文がjavascriptで機能するはずです。