Pomoc w regexpie

Pomoc w regexpie
  • Rejestracja: dni
  • Ostatnio: dni
0

Hej,
potrzebuje pomocy, nie jestem w stanie zaczaic wyrazen regularnych.
Potrzebuje regexa ktory wyciagnie mi z html znacznik form niezaleznie od tego czy ma jakiejs atrybuty jak action czy tez nie.
Zalezy mi aby regex zwracal rowniez sam znacznik form.

Dzieki za wskazowki

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
0

Co Chcesz, sam znacznik, czy to co w srodku?

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
1

Odpal sobie jakieś online regex tester np.regex101.com i się bawisz.
Coś takiego powinno zadziałać:

Kopiuj
<?php
$re = '/<form action=+.+>/mi';
$str = '<h1>naglowek</h1>
<form action="/action_page1.php" method="get">
<div></div>
<form action="/action_page123455.php" method="get">
';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);

W testerze online od razu będziesz miał pokazane co oznaczają poszczególne wpisy.

  • Rejestracja: dni
  • Ostatnio: dni
0

Wszystko co pomiedzybtagami jak rowniez cala zawartosc samych tagow (czyli tag + atrybuty)

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
0

Nie Możesz zrobić tego samymi regexami. Można użyć regexa do znalezienia, znacznika (<form, </form>), ale wrzucić to co pomiedzy Musisz sam.
Jakoś tak:
Mam kod strony jako jeden string, regexem szukam <form, jak znajdę wszystko co dalej dorzucam do jakiegoś stringa wynikowego, aż do momentu gdy znajdę </form>. To dalej nie rozwiązuje problemu gdy tagi są zagnieżdżone, tu Musialbyś mieć parser html - a, nie jest on bardzo skomplikowany i podejrzewam, że są do tego w PHP biblioteki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.