J'ai le texte suivant exempleproblème avec l'ordre correspondant à une expression régulière en PHP
The quick brown {fox} jumps over the lazy {dog}
je dois correspondre à une chaîne entre {} qui peut se produire plusieurs fois dans le texte.
J'ai essayé le code suivant, mais il ne fonctionne pas correctement
<?php
$matches = array();
$string = "The quick brown {fox} jumps over the lazy {dog}";
preg_match("/\{(.*)\}/",$string,$matches);
print_r($matches);
?>
et c'est ce que je reçois
Array
(
[0] => {fox} jumps over the lazy {dog}
[1] => fox} jumps over the lazy {dog
)
je me attends obtenir
Array
(
[0] => {fox} jumps over the lazy {dog}
[1] => fox
[2] => dog
)
Alors, comment puis-je forcer PHP pour faire correspondre le "}" le plus proche au lieu de faire correspondre le dernier?
Cela fonctionne très bien. Pourriez-vous s'il vous plaît expliquer l'utilisation de? dans ce cas ? Cette utilisation est-elle documentée? – AssemblerGuy
Le? est une caractéristique standard des expressions régulières: voir http://www.regular-expressions.info/repeat.html pour plus de détails sur la gourmandise/la paresse –