J'ai ce texte je veux obtenir le texte entre La balise pourrait tout ce que quelque chose comme Comment puis-je résoudre ce problème? p> p> Remarque: h3>
#x code> c'est juste un Délimiteur à la partie de cette partie du texte. P>
4 Réponses :
Quelque chose comme ça devrait faire le travail: ceci spécifie les éléments suivants: p> pour quelque chose de plus simple comme la balise p>
ou strud> non suivi de exclude> code>. li>
#x code> Vous pouvez utiliser le même principe: p> var text = `
Donec ante sapien, gravida id risus eget,
<exclude>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec quis neque ex. Aenean ac leo quis ex lobortis aliquam. Donec libero dolor, sodales in molestie vel, sagittis at nulla. Proin egestas dolor turpis. Aliquam erat volutpat. Nunc eget enim varius, condimentum tortor sit amet, aliquet magna. Phasellus ut libero quis diam dignissim interdum. Sed commodo iaculis vestibulum. Quisque viverra diam sed orci rhoncus luctus. Mauris leo mauris, consequat at lacinia sit amet, viverra vitae enim. Donec maximus, ipsum in bibendum volutpat, est erat dapibus leo, et iaculis arcu augue in dolor.
<exclude>
Donec ante sapien, gravida id risus eget,
`.trim();
var regex = /<exclude>((?:[^<]|<(?!exclude>))*)(?=<exclude>)/g;
while (match = regex.exec(text)) {
console.log(match[1]);
}
Vous pouvez changer (? = 1 code>, 2 code> > 3 code>. Faire de cette modification laisserait correspondre à 1 code> et 3 code>.
Assumer que vos données sont correctes et ce n'est pas réellement XML (pour lequel vous devez utiliser un analyseur XML à la place). Compte tenu de votre exemple spécifique, cela fonctionnerait:
p>
var str = `Donec ante sapien, gravida id risus eget, <exclude> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec quis neque ex. Aenean ac leo quis ex lobortis aliquam. Donec libero dolor, sodales in molestie vel, sagittis at nulla. Proin egestas dolor turpis. Aliquam erat volutpat. Nunc eget enim varius, condimentum tortor sit amet, aliquet magna. Phasellus ut libero quis diam dignissim interdum. Sed commodo iaculis vestibulum. Quisque viverra diam sed orci rhoncus luctus. Mauris leo mauris, consequat at lacinia sit amet, viverra vitae enim. Donec maximus, ipsum in bibendum volutpat, est erat dapibus leo, et iaculis arcu augue in dolor. <exclude> Donec ante sapien, gravida id risus eget,`; console.log(/<exclude>(.*?)<exclude>/gs.exec(str)[1]);
Quand le drapeau s code> a-t-il été ajouté? Je reçois l'erreur "SyntaxError: drapeau d'expression régulier invalide s" i>.
Voir: Stackoverflow.com/a/1068308/1250301
var str = "Donec ante sapien, gravida id risus eget,\n" + "<exclude>\n" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec quis neque ex. Aenean ac leo quis ex lobortis aliquam. Donec libero dolor, sodales in molestie vel, sagittis at nulla. Proin egestas dolor turpis. Aliquam erat volutpat. Nunc eget enim varius, condimentum tortor sit amet, aliquet magna. Phasellus ut libero quis diam dignissim interdum. Sed commodo iaculis vestibulum. Quisque viverra diam sed orci rhoncus luctus. Mauris leo mauris, consequat at lacinia sit amet, viverra vitae enim. Donec maximus, ipsum in bibendum volutpat, est erat dapibus leo, et iaculis arcu augue in dolor.\n" + "<exclude>\n" + "Donec ante sapien, gravida id risus eget,\n" var regex = /<exclude>([\S\s]*?)<exclude>/g; var found = regex.exec( str )[1]; console.log( found );
Un moyen de concevoir une expression pour une telle sortie est d'utiliser des groupes de capture que la plupart des réponses utilisent déjà cela.
En outre, vous pouvez ajouter d'autres indicateurs tels que multilignes ou une ligne unique (en fonction de votre chaîne d'entrée) à votre expression, comme vous le souhaitez. Cet outil pourrait vous aider à le faire, concevoir et tester vos expressions et voir comment ils fonctionnent : P>
Ce graphique montre comment l'expression fonctionnerait: p>
Cet extrait JavaScript montre la performance de cette expression en utilisant un simple million de fois p> pour code> boucle. p> repeat = 1000000;
start = Date.now();
for (var i = repeat; i >= 0; i--) {
var string = "Donec ante sapien, gravida id risus eget,\n" +
"<exclude>\n" +
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec quis neque ex. Aenean ac leo quis ex lobortis aliquam. Donec libero dolor, sodales in molestie vel, sagittis at nulla. Proin egestas dolor turpis. Aliquam erat volutpat. Nunc eget enim varius, condimentum tortor sit amet, aliquet magna. Phasellus ut libero quis diam dignissim interdum. Sed commodo iaculis vestibulum. Quisque viverra diam sed orci rhoncus luctus. Mauris leo mauris, consequat at lacinia sit amet, viverra vitae enim. Donec maximus, ipsum in bibendum volutpat, est erat dapibus leo, et iaculis arcu augue in dolor.\n" +
"<exclude>\n" +
"Donec ante sapien, gravida id risus eget,\n";
var regex = /(.+)(<exclude>)(.+)(<exclude>)(.+)/gms;
var match = string.replace(regex, "$3");
}
end = Date.now() - start;
console.log("YAAAY! \"" + match + "\" is a match ððð ");
console.log(end / 1000 + " is the runtime of " + repeat + " times benchmark test. ð³ ");
Stackoverflow.com/a/1732454/85615
Est-il correct que ces deux tags sont code> plutôt que code> et
exclude> code>?