J'ai l'expression régulière suivante dans mon code PHP :
// markers for italic set *Text* if (substr_count($line, '*')>=2) { $line = preg_replace('#\*{1}(.*?)\*{1}#', '<i></i>', $line); }
Ça fonctionne très bien.
Cependant, quand $line
持有 <br>
par ex.
*This is my text<br>* Some other textEnsuite, l'expression régulière considère toujours le texte et le convertit en :
<i>This is my text<br></i> Some other textLe but est de ne pas traduire le texte si
est rencontré. Comment puis-je faire cela à l'aide d'expressions régulières - en utilisant ce qu'on appelle une "anticipation négative" ou comment puis-je modifier l'expression régulière existante ? <br>
Remarque : les chaînes comme
doivent toujours être prises en compte et converties. *This is my text*<br>Some other text<br> 和再次 *italic*<br>END
puis utiliser une expression régulière pour parcourir le résultat ? ! $line
En utilisant la technique faire correspondre ce que vous ne voulez pas et supprimer, vous pouvez utiliser cette expression régulière en PHP (PCRE) :
et remplacez par
Démonstration d'expression régulière
Code PHP :
Instructions :
*
:匹配*
[^*]*
:匹配 0 个或多个非*
personnages
:匹配*
:匹配结束*
(*SKIP)(*F)
: verbe PCRE pour écarter et sauter ce match*([^*]*)*
:匹配*
chaîne ci-jointe