Je travaille sur une expression régulière qui regarde tout sauf les informations entre guillemets. Un exemple serait:
Lorem ipsum "dolor" sit amet, "consectetur" adipiscing elit.
Changerait en
Lorem ipsum sit amet, élite adipeuse
J'ai déjà essayé
.*(?=".*").*
et
`[^"]. * [^ "]
Aucun des deux n'a fonctionné, j'apprécierais donc votre aide.
4 Réponses :
Voici un moyen ...
var str = `Lorem ipsum "dolor" sit amet, "consectetur" adipiscing elit.`
console.log(str.replace(/\"[a-z]{1,}\"/g, ''))
Je ferais quelque chose dans ce sens. Il gère le cas où la phrase commence ou se termine par un guillemet.
var str = '"Lorem" ipsum "dolor" sit amet, "consectetur", adipiscing "elit."'; var regExp = /(?:^|\W)(\".+?\")(?:\W|$)/g; var res = str.replace(regExp, " ").trim(); console.log(res);
RegExp expliqué:
(?: ^ | \ W) - groupe non capturant du début de la chaîne ou juste d'un espace (techniquement un " caractère autre qu'un mot "- peut être une ponctuation, un crochet, etc.)
(\". +? \ ") - n'importe quoi entre " ( y compris les guillemets eux-mêmes)
(?: \ W | $) - identique au premier, mais en vérifiant la fin d'une chaîne à la place
g flag - vérifie toutes les occurrences d'un modèle correspondant
Essayez ceci, non gourmand (". *?") correspond à deux citations et le moins possible entre elles.
var a ='Lorem ipsum "dolor" sit amet, "consectetur" adipiscing elit.'; console.log(a.replace(/".*?"/g,''));
J'espère vous aider:
var str = 'Lorem ipsum "dolor" sit amet, "consectetur" adipiscing elit.' ;
var res = '' ;
var patt = /[,\w]+(?![^" ]*")/g ;
while ( (arr = patt.exec(str)) != null) { res += arr[0] + ' ' ; }
console.log( res ) ;
/[,\w]+(?![^" ]*")/g
Utilisez
replace, c'est-à-direstr.replace (/ "[^"] * "\ s * /," ")Ou,
s.split (/ \ s * "[^"] * "\ s * /). Join (" ") .trim ()