Skocz do zawartości

Regexp - negacja ciągu


mrbox

Rekomendowane odpowiedzi

Bry!

mam do przeparsowania teksty, które wyglądają tak:

<h2><span class="jakasklasa">Tytul</span></h2>
<p>bleble <i>blabla</i></p>
<p>sratatata</p>
<code>abcdefgh</code>
<p><a name="nazwa" id="id"></a></p>
<h2><span class="jakasklasa">Tytul 2</span></h2>
<p>sratatata</p>
<i>asdasdf</i>
<p><a name="nazwa2" id="id2"></a></p>
<h2><span class="jakasklasa">Tytul 3</span></h2>

i tak dalej

Wiecie może, jakim patternem to pociągnąć, żeby wydobyć wszystko co jest pomiędzy </h2> a <p><a name="... ? Oczywiście to co jest pomiędzy jest jedną wielką masakrą- może tam być milion <p>, milion <a href=..> i innych znaczników.

Próbowałem używać znaczników (?!<p><a name) i (?<=<p><a name) w różnych konfiguracjach, ale nic nie działa :)

Czyli tak naprawdę chodzi co coś w stylu 'weź wszystko po </h2>, dopóki nie napotkasz <p><a name'

Odnośnik do komentarza
Udostępnij na innych stronach

No tak jak napisał Trotyl:

//$mySring zmienna zawierająca dane do parsowania

preg_match_all("/<\/h2>(.*?)<p><a name/",$mySring, $arrdane);

echo'<pre>';
print_r($arrdane[0]);
echo'</pre>';

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Dziękuję za odpowiedzi- jutro będę testował bo dzisiaj już nie mam siły do tego ;)

Nie lepiej po prostu explode(...)

Nie mam do dyspozycji explode- piszę w Pythonie ;) Ale jeśli nie zadziała ten pattern z góry, to po prostu zamienię całe '<p><a name' na jakiś znak z utf-8, który nie występuje w tekście(np ^) i potraktuję to normalnie tak:

</h2>[^^]*^

Na wydajności mi niebardzo zależy- ma działać i nawet jeśli będzie mielić przez 3 godziny to trudno- mam inne zajęcia też ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności