Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> RegEX i \n
Luciano
post
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
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Musisz dodac flage "s", czyli:

Kod
/<T1>.*?<\/T1>/xs


Prosze, używaj bbcode wtedy dużo łatwiej się pomaga.

Tak, doladnie chodzi o s
Go to the top of the page
+Quote Post
bendi
post
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


A ja mam wrażenie że chodzi o modyfikator /s - czyli coby kropka też dobierała się do znaków nowej linii.

Tak wogóle to pytanie bardzo często się pojawia możnaby je do jakiegoś FAQ wrzucić.
Go to the top of the page
+Quote Post
Luciano
post
Post #4





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

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


Dzieki wielkie za pomoc!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 7.10.2025 - 16:58