Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> RegEX i \n
Luciano
post 18.08.2006, 15:36:38
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 1
Dołączył: 26.07.2006
Skąd: Londyn

Ostrzeżenie: (0%)
-----


Witam,

Chcialbym sie dowiedziec co jest przyczyna problemu, ze wyrazenia regularne zdaja sie "nie chwytac" wyrazen
ze stringow w ktorych jest znak nowej lini. Na przyklad mamy dany ciag:

  1. <?php
  2. $xml = "<ROOT><T1>ns</T1><T1>2</T1><AB><A>11</A><B>22</B><C>33</C></AB></ROOT>";
  3. ?>


i wyrazenie


/<T1>.*?</T1>/x


funkcja preg_match_all zwroci mi tablice [0] = ns [1] = 2

Jesli natomiast zmodyfikuje string dodajac znak nowej lini po ns

  1. <?php
  2. $xml = "<ROOT><T1>nsn</T1><T1>2</T1><AB><A>11</A><B>22</B><C>33</C></AB></ROOT>";
  3. ?>


lub wpisze np.

  1. <?php
  2. $xml = '<ROOT>
  3. <T1>
  4. ns
  5. </T1>
  6. <T1>2</T1><AB><A>11</A><B>22</B><C>33</C></AB></ROOT>';
  7. ?>


w wyniku otrzymam tylko [0] = 2

Nie bardzo rozumiem dlaczego tak sie dzieje, myslalem ze KROPKA oznacza kazyd znak.

Pozdrawiam

Ten post edytował Luciano 21.08.2006, 09:39:40


--------------------
Go to the top of the page
+Quote Post

Posty w temacie
- Luciano   RegEX i \n   18.08.2006, 15:36:38
- - hwao   Musisz dodac flage "s", czyli: Kod/...   18.08.2006, 18:27:11
- - bendi   A ja mam wrażenie że chodzi o modyfikator /s - czy...   19.08.2006, 09:07:23
- - Luciano   Dzieki wielkie za pomoc!   21.08.2006, 09:39:59


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 05:35