Nie mogę uzyskać poprawnego działania następującego wyrażenia regularnego:
preg_match("Currently: ([0-9.km,]+)", $data, $matches)
Informacje wewnątrz $ data to: „Co to jest obecnie: 52 523” (wraz z około 30 wierszami HTML).
Ciągle pojawia się następujący błąd: Warning: preg_match(): Delimiter must not be alphanumeric or backslash in C:xampphtdocstesttest.php on line 49
Uwaga: wiersz 49 zawiera poprzedni wpis, który opublikowałem powyżej.
Edycja: Przeprosiny, zapomniałem dodać parametr dopasowania.
Odpowiedzi:
5 dla odpowiedzi № 1temu funkcja preg_match wymaga ogranicznika we wzorcu.
preg_match("/Currently: ([0-9.km,]+)/", $data, $matches)
edytować:
jak opisano w komentarzach
@ JoséRobertoAraújoJúnior
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
Jeśli to masz na myśli, tak, ustawiłem to. Jeśli jaecho $data
, to wyświetla stronę internetową, co oznacza, że nadal zawiera cały kod HTML tagi .. Nie wiem, co mam teraz zrobić, aby użyć tych danych w mojej preg_
Wtedy jest to możliwe $data
zawiera spacje między: Currently:
i (...)
, więc należy to uwzględnić w swoim wzorze, dodając s+
zamiast zwykłej białej spacji, s
dopasuje dowolny biały znak zgodnie z opisem w Strona dokumentacji składni wyrażeń regularnych PCRE.
preg_match("/Currently:s+([0-9.km,]+)/", $data, $matches)
Test na żywo: http://codepad.viper-7.com/xJNisE
1 dla odpowiedzi nr 2
musisz dodać ten sam znak na początku i na końcu wzoru:
preg_match("/Currently: ([0-9.km,]+)/", $data)
Ten znak nie może pojawić się wewnątrz wzoru, chyba że go zmienisz, na przykład:
preg_match("/<example></example>/", $xml)
Możesz użyć innych znaków jako separatorów, jednego z najczęściej używanych obok /
jest #
1 dla odpowiedzi nr 3
Musisz użyć separatora, takiego jak ta edycja
$data = "What it is Currently: 52,523";
preg_match("&Currently: ([0-9.km,]+)&", $data, $match);
print_r($match);
przykład pracy http://codepad.viper-7.com/QGOoXT