我尝试提取所有“咨询”和文本文档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
答案 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);