[PHP] Pregi Help

0

Hey

Przykład:
$text='BBBB<test>CCC</test>';
$text='BBBB<test2>CCC</test2>';

jak zrobić aby wyciągnać dane CCC ?

robie parser-a w stylu : "#<a...>([^>]*)</a>#"
robie tak że w anchorze ma nie być znaku ">", ale jak wiadomo często sie zdarzają np. </b>

moje pytanie - jak zrobić by zaprzeczyć nie znak a całe wyrażenie cosw stylu : "[^<test>]*"

pozdr.

0
<test>(.*?)</test> ??
0

nie, chodiz mi o co innego.

Chce pobrać fragment objętnie jakeigo textu w którym nie ma wyrażenia "<test>" lub "</test>"

Np.

$site='TEST1TEST2</tr>BEZTEGO</tr></tr>';

preg_match_all('#([^×]+)([BEZTEGO]{0})</tr>#', $site,$res);

Jak pobrać z $site dane"TEST1TEST2</tr>" ?

Użyłem tutaj też "([^×]+)" , ponieważ jak robie (.*) to nie uznaje mi enterów

0

((?!</?test>).)*

0

ok, dzięki, zaprzeczenie działa

tylko mam prblem z enterem

$site='TES1TEST2</tr></tr>';

$site2='
T
E
S

TEST2</tr></tr>'; Parser: preg_match_all('#((?!class="yyy").)*((?!class="yyy").)*</tr>#', $site, $res); działa dla $site ale dla $site2, który ma entery nie. Co trzeba dodać w miejscy "((?!class="yyy").)*" Ok, zrobiłem tak: preg_match_all('#((?!class="yyy")[°])*((?!class="yyy")[°])*</tr>#', $site, $res); Tylko teraz kolejna rzecz :(. Pola w nawiasach jak maja wiecej niz 1000 znaków to juz nie znajduje. chyba będzie lepiej jak napisze własnego parsera na strpos i substr... jest może strpos na preg-u? do znajdywania samej pozycji?
0

a nie wystarczy dać flagę "s" (na końcu po "#") żeby nowe linie nie sprawiały problemów ?

0

wystarczy :> s - "dot matches new line".

0

ok, wszystko działa tlyko jeszce jeden problem z długością wyszukiwanych fraz

mam teraz takiego parsera:
preg_match_all('#((?!class="yyy").)(.)class="yyy"#si', $site, $res);


długa tresc - ponad 2000 znaków

jak jest długa treśc to nie znajduje ((?!class="yyy").){0,9999} tak pisze że max może być 1550

hmmm

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0