Wykona globalne dopasowanie wyrażeń regularnych
Wyszukuje wszystkie tematy pasujące do wyrażeń regularnych podanych we wzorze i wstawia je następnie do posujących wyników posortowanych wedłóg flag.
Parametry
- pattern
-
Wzorzec do wyszukiwania, jako ciąg znaków.
- subject
-
ciąg wejściowy.
- matches
-
Tablicę wszystkich dopasowań w wielowymiarowej tablicy posortowanych zgodnie z flagami.
- flags
-
Może być kombinacją następujących flag (pamiętaj, że nie ma sensu używać PREG_PATTERN_ORDER wraz z PREG_SET_ORDER):
-
- PREG_SET_ORDER
-
- PREG_OFFSET_CAPTURE
-
- offset
-
Normally, the search starts from the beginning of the subject string. The optional parameter offset can be used to specify the alternate place from which to start the search (in bytes).
Normalnie, wyszukiwanie rozpoczyna się od początku a}cucha ynakw. Opcjonalny parametr offset moe być wykorzystanz, aby określić miejsce, z którego ma si roypocy wzsyukiwanie (w bajtach).
Zwracane wartości
Listing
//Example #1 pobiera wszystkie numery telefonów z tekstu.
<?php
preg_match_all("/\(? (\d{3})? \)? (?(1) [\-\s] ) \d{3}-\d{4}/x",
"Call 555-1212 or 1-800-555-1212", $phones);
?>
//Example #2 Znajdź pasujące znaczniki HTML (greedy)
<?php
// przykład 2 jest przykładem backreferencing.Mówi, że PCRE
musi odpowiadać drugiemu zestawowi nawiasów w wyrażeniu regularnym
// która byłaby w tym przypadku ([\ w] +), . Dodatkowy ukośnik jest
//wymagany, ponieważ ciąg jest w podwójnym cudzysłowie
$html = "<b>pogrubiony text</b><a href=howdy.html>kliknij mnie</a>";
preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);
foreach ($matches as $val) {
echo "matched: " . $val[0] . "\n";
echo "part 1: " . $val[1] . "\n";
echo "part 2: " . $val[3] . "\n";
echo "part 3: " . $val[4] . "\n\n";
}
?>
//Powyższy przykład wyświetli:
matched: <b>pogrubiony text</b>
part 1: <b>
part 2: pogrubiony text
part 3: </b>
matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: kliknij mnie
part 3: </a>
//Example #3 użycie nazwy subpattern
<?php
$str = <<<FOO
a: 1
b: 2
c: 3|>
FOO;
preg_match_all('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);
print_r($matches);
?>
//Powyższy przykład wyświetli:
Array
(
[0] => Array
(
[0] => a: 1
[1] => b: 2
[2] => c: 3
)
[name] => Array
(
[0] => a
[1] => b
[2] => c
)
[1] => Array
(
[0] => a
[1] => b
[2] => c
)
[digit] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[2] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
)
Ranga: Administrator serwisu Punktów: 0