Google App Script findText regex не работает для символа новой строки - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь найти / изменить текст в моем документе Google, где текст был разбит на весь разрыв строки.Мое регулярное выражение ниже работает, когда я вручную нахожу текст в документе Google (CTRL + F), а затем выполняю поиск в диалоговом окне регулярного выражения.Что сбивает с толку, так это то, что точно такое же регулярное выражение не работает в приведенном ниже коде при полном разрыве строки, то есть "\ n" (примечание: мягкие переводы строки "\ v" в порядке).

Второйподход находит текст, но я ничего не могу с ним сделать, так как мне нужен объект элемента для манипулирования текстом.

  //Test document 1Q6v8ipqA81LoPtpk71NdqTaIEqMjki1KIJbrm0bILBg contains the following text:
  //
  //This Agreement shall not be assigned by either party without the prior\n
  //written consent of the parties hereto

  var doc = DocumentApp.openById('1Q6v8ipqA81LoPtpk71NdqTaIEqMjki1KIJbrm0bILBg');          

  //Method 1 - does NOT locate the text
  var body = doc.getBody(); 
  var pattern = "prior[\s]*written";  
  var foundElement = body.findText(pattern);    
  while (foundElement != null) {
    var foundText = foundElement.getElement().asText();    
    var start = foundElement.getStartOffset();
    var end = foundElement.getEndOffsetInclusive();

    foundElement = body.findText(pattern, foundElement);      
  }

  //Method 2 - locates the text, but I cannot acquire the element object 
  var body2 = doc.getBody().getText(); 
  var pattern2 = /prior[\s]*written/; 
  while (m=pattern2.exec(body2)) 
  { 
    Logger.log(m[0]);         
  }
}
...