Utilisation de Regex en JavaScript sur plusieurs lignes
En JavaScript, l'indicateur 'm', censé être conçu pour la correspondance multiligne, ne parvient pas à capturer le contenu s'étendant sur les nouvelles lignes. Pour résoudre ce problème, une solution plus robuste est nécessaire.
La clé est d'utiliser « [sS] » ou « [^] » comme point multiligne. Ces modèles correspondent à n'importe quel caractère, y compris les nouvelles lignes. Cette approche capture efficacement le contenu quelle que soit sa distribution sur plusieurs lignes.
Exemple :
var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\ncccddd"; var arr = ss.match( /
[\s\S]*?<\/pre>/gm ); console.log(arr); // Outputs: `<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc`
Alternative moins cryptique :
Bien que la solution fournie soit efficace, une approche moins complexe peut être obtenue en remplaçant « [sS] » par « .* ? ». Ce quantificateur correspond à n'importe quel nombre de caractères (y compris les sauts de ligne) de manière non gourmande, ce qui permet une correspondance plus efficace et plus ciblée.
var arr = ss.match( /<pre class="brush:php;toolbar:false">.*?<\/pre>/gm ); console.log(arr); // Outputs: `<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc`
Conseils :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!