Aide pour un motif avec preg_replace()
Bonjour,
j'ai un fichier PHP me permettant de tester mon expression régulière.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>test lexique</title>
<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
<meta http-equiv="Pragma" content="no-cache" />
<style type="text/css">
body {
color:#CC0000;
font-family:"Courier New", Courier, monospace;
}
span {
color:#33CC66;
}
</style>
</head>
<body>
<?php
$terme = "AB";
$texte = "*** OUI ***<br />";
$texte .= "oui pour >'AB'<"."<br />";
$texte .= "oui pour >'Ab<"."<br />";
$texte .= "oui pour >'aB <"."<br />";
$texte .= "oui pour >AB'<"."<br />";
$texte .= "oui pour > AB'<"."<br />";
$texte .= "<br />";
$texte .= "oui pour >Ab<"."<br />";
$texte .= "oui pour >aB<"."<br />";
$texte .= "oui pour >ab <"."<br />";
$texte .= "oui pour >AB<"."<br />";
$texte .= "oui pour > AB<"."<br />";
$texte .= "<br />*** NON ***<br />";
$texte .= "non pour >aAB<"."<br />";
$texte .= "non pour >aAB <"."<br />";
$texte .= "non pour >ABb<"."<br />";
$texte .= "non pour > ABb<"."<br />";
$texte .= "<br />";
$texte .= "non pour >éAB<"."<br />";
$texte .= "non pour >éAB <"."<br />";
$texte .= "non pour >ABé<"."<br />";
$texte .= "non pour >àAB<"."<br />";
$texte .= "non pour >ABà<"."<br />";
$texte .= "non pour >çABç<"."<br />";
$motif = "`([\W\s])(".$terme.")([\W\s])`i";
$texte = preg_replace($motif, '$1<span>$2</span>$3', $texte);
echo $texte;
?>
</body>
</html> |
sauf que mon motif ne fonctionne pas à tous les cas... :?
C'est à dire, qu'au lieu d'avoir :
Citation:
*** OUI ***
oui pour >'AB'<
oui pour >'Ab<
oui pour >'aB <
oui pour >AB'<
oui pour > AB'<
oui pour >’Ab’<
oui pour >’aB<
oui pour >’ab <
oui pour >AB’<
oui pour > AB’<
*** NON ***
non pour >aAB<
non pour >aAB <
non pour >ABb<
non pour > ABb<
non pour >éAB<
non pour >éAB <
non pour >ABé<
non pour >àAB<
non pour >ABà<
non pour >çABç<
j'ai :
Citation:
*** OUI ***
oui pour >'AB'<
oui pour >'Ab<
oui pour >'aB <
oui pour >AB'<
oui pour > AB'<
oui pour >’Ab’<
oui pour >’aB<
oui pour >’ab <
oui pour >AB’<
oui pour > AB’<
*** NON ***
non pour >aAB<
non pour >aAB <
non pour >ABb<
non pour > ABb<
non pour >éAB<
non pour >éAB <
non pour >ABé<
non pour >àAB<
non pour >ABà<
non pour >çABç<
Merci d'avance... car là j'avoue je ne vois pas pourquoi...
:roll: