Bonjour à tous,
J'ai un vrai souci avec les expressions régulières...
je veux isoler tout ce qui est comme ça dans une chaine :"{(.*)}"
voilà mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
$chaine="
      <TABLE> 
      	<tr>
      		<td colspan='3'>
		        <IMG title='image1' src='{constant:IMG_1}'>
		        <IMG title='image2' src='{constant:IMG_2}'>
		        <IMG title='image3' src='{constant:IMG_3}'>
		        <IMG title='image4' src='{constant:IMG_4}'>
      		</td></tr>
        <TR>
          <TD>
            <A onMouseOver=\"document.images['a'].src='{constant:IMG_5}';\" onMouseOut=\"document.images['a'].src='{constant:IMG_6}';\"><IMG src='{constant:IMG_6}'></A></TD>
          </TD>
          <TD>
            <A onMouseOver=\"document.images['b'].src='{constant:IMG_7}';\" onMouseOut=\"document.images['b'].src='{constant:IMG_8}';\"><IMG src='{constant:IMG_7}'></A></TD>
          </TR>
        </TABLE>
 ";       
        preg_match_all("#{constant:(.*)}#",$chaine,$tableau_ereg);
 
        print_r($tableau_ereg[0]);
et ce que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Array
(
    [0] => {constant:IMG_1}
    [1] => {constant:IMG_2}
    [2] => {constant:IMG_3}
    [3] => {constant:IMG_4}
    [4] => {constant:IMG_5}';" onMouseOut="document.images['a'].src='{constant:IMG_6}';"><IMG src='{constant:IMG_6}
    [5] => {constant:IMG_7}';" onMouseOut="document.images['b'].src='{constant:IMG_8}';"><IMG src='{constant:IMG_7}
)
Vous avez sans doute compris, je voudrais obtenir ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Array
(
    [0] => {constant:IMG_1}
    [1] => {constant:IMG_2}
    [2] => {constant:IMG_3}
    [3] => {constant:IMG_4}
    [4] => {constant:IMG_5}
    [5] => {constant:IMG_6}
    [6] => {constant:IMG_6}
    [7] => {constant:IMG_7}
    [8] => {constant:IMG_8}
    [9] => {constant:IMG_7}
)
Il y a un souci dans mon expression régulière, il ne s'arrête pas au 1er "}" trouvé, mais apparemment au dernier de la ligne...
Et je ne vois pas du tout comment modifier mon expression... Vous avez une idée ?

Merci.