Найти заменить с RegEx с Google Script - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь заменить подстроки, которые выглядят следующим образом:

Education|AAA|BBB|CCC|DDD|EEE

AAA|Educator|CCC|DDD|EEE

, где Education или Educator могут находиться в любом месте строки с разделителями.Они присутствуют не более одного раза или ноль раз

Мне нужно заменить их на 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, я получаю

Educator/Education/Education|AAA|BBB|CCC|DDD|EEE

AAA|Educator/Education|CCC|DDD|EEE

Я думаю, что другой шаблон RegEx для функции ReplaceNth сделает это, но не может получить то, что должно быть

Вот чтоЯ столкнулся с ограниченными возможностями 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 Ответ

0 голосов
/ 25 мая 2018

В синтаксисе регулярных выражений вы можете создать условие 'или', используя вертикальную черту для поиска нескольких вещей за один раз.Вы можете проверить это в G Suite Sheets без кода.

Search using regex

Я думаю, вы хотите найти

Образование |Педагог

и замените его на

Образование / Педагог

Когда вы довольны своими результатами, вы можете поместить их обратно в код - тот же синтаксис регулярных выражений должен работать в javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...