如何获得多个摘要“咨询”

时间:2015-10-08 22:18:02

标签: regex google-apps-script google-docs

我尝试提取所有“咨询”和文本文档GoogleDocs中输入的日期 并恢复它们以将它们放在日志文件中

我使用正则表达式:咨询.... \ / .. \ / ....工作正常

像这样

https://regex101.com/r/oI5eG4/5

我的剧本

function findNotesContactAjoutText() {

  var doc = DocumentApp.getActiveDocument();
  var bodyElement = DocumentApp.getActiveDocument().getBody();
  var search = "An"
  var searchResult = bodyElement.findText(search);


                /////      Recherche du "Nom Prenom" sur l' Ordonnace      ////

  var regexp = /[^0-9]*/g ;// extrait la chaine de caractère avant la chaine numérique
  var doc = DocumentApp.getActiveDocument().getText();
  var result = regexp.exec(doc);
  var regexp = /[^a-z\s-]+[A-Za-z\s-]+/g; // extrait les espaces devant et derriere Nom Prenom  Demande la Présence de XX Ans (caché en blanc dans l'ordo paramédical)

   var NomPrenom = regexp.exec(result);


//------getContactsWithBirthdays();

   var contacts = ContactsApp.getContactsByName(NomPrenom);
  //Logger.log("Before: " + contacts.length);

  for (var i = contacts.length - 1; i >= 0; i--) {
    if (contacts[i].getDates(ContactsApp.Field.BIRTHDAY).length > 0) {
      Logger.log(contacts[i].getDates(ContactsApp.Field.BIRTHDAY)[0].getYear());
       var birthday = contacts[0].getDates(ContactsApp.Field.BIRTHDAY)[0];
       var day = (birthday.getDay());
       var month = (birthday.getMonth());
       var year = (birthday.getYear());
       var Notes = (contacts[0].getNotes());
       var regexp = /CONSULTATION+.{1,12}/g ;// extrait la 1 ERE CONSULTATION du Patient                          WORK FINE ONLY THE FIRST
       var regexp = /CONSULTATION.*?$/gm ;// extrait toutes les CONSULTATIONS du Patient                                   DO NOT WORK
       var Notes = regexp.exec(Notes);

    }


  while (searchResult !== null) {
    var thisElement = searchResult.getElement();
    var thisElementText = thisElement.asText();
    var matchString = thisElementText.getText().substring(searchResult.getStartOffset(), searchResult.getEndOffsetInclusive()+1);

    Logger.log(matchString);
       thisElementText.setText(age+" Ans "+ "\n" + Notes );   //Affiche Notes         //I WANT ALL CONTACT CONSULTATIONS 

// search for next match
    searchResult = bodyElement.findText(search, searchResult);
}

}

  DocumentApp.getUi().showSidebar(
      HtmlService
          .createHtmlOutput (Notes)
          .setTitle('Notes Patient')
          .setWidth(350 /* pixels */));
}

NOM PRENOM 12/09/1970 1840042088011 10/07/2014

ATCD:DIABETE 2011 6 ET 7

FAMILIAUX:FCV0

TABAC:00

VACCINS:REVAXIS 2014

监视:

预防:测试

交易:(STAGID 3 cp / j)+ METFORMINE 850 3CP#

咨询C02 / 03/2015

CEFPODOXIME 2 cp matin et soir pdt 5 jours PREDNISOLONE 20 2 cp le matin pdt 4 jours RHINOFLUIMUCIL 3 fois / j pdt 7 jours DAFALGAN 1G 1 cp 3 fois / j3boîtes TERBINAFINE 1 cp / j

TTT

咨询C01 / 10/2014

CEFPODOXIME 2 cp matin et soir pdt 5 jours PREDNISOLONE 20 2 cp le matin pdt 4 jours RHINOFLUIMUCIL 3 fois / j pdt 7 jours DAFALGAN 1G 1 cp 3 fois / j3boîtes

TTT

咨询C21 / 05/202012

CEFPODOXIME 2 cp matin et soir pdt 5 jours PREDNISOLONE 20 2 cp le matin pdt 4 jours RHINOFLUIMUCIL 3 fois / j pdt 7 jours DAFALGAN 1G 1 cp 3 fois / j3boîtes

TTT

我想获得

咨询C02 / 03/2015 咨询C01 / 10/2014 咨询C21 / 05/202012

1 个答案:

答案 0 :(得分:0)

GAS / JS解决方案:

var log = '', reg = /(CONSULTATION C[\d\/]*)/g, nn, str = theWholeString;
while( nn = reg.exec(str ) ){ log += nn[0] + ' '; } Logger.log(log);