preg_match_all() je vestavěná funkce v PHP, která se používá ke spárování konkrétního vzoru v řetězci. Tuto funkci můžete použít k provádění shod regulárních výrazů a extrahování dat z řetězců. Může ušetřit čas a úsilí v případech, kdy potřebujete hledat více výskytů vzoru, a je široce používán v aplikacích PHP pro analýzu textu a extrakci dat.
Syntax
Následuje syntaxe pro použití preg_match_all v PHP:
preg_match_all ( vzor , vstup , zápasy , vlajky , offset )
The preg_match_all přijímá následující parametry, tři jsou povinné parametry a dva volitelné:
- vzor : Je to povinný parametr; obsahuje regulární výraz, který je třeba hledat.
- vstup : Druhý je také povinný parametr, protože je to řetězec, ve kterém se provádí vyhledávání.
- zápasy : Uloží výstup do pole obsahujícího všechny shody.
- vlajky : Popisuje, jak je strukturováno pole hledání nebo shody. Upravuje chování hledání funkce. Lze použít následující příznaky:
- offset : Je to volitelný parametr, který určuje počáteční pozici vyhledávání.
Vlajka | Popis |
---|---|
PREG_PATTERN_ORDER | Výsledné pole má všechny shody pole pro každý prvek regulárního výrazu. |
PREG_SET_ORDER | Každý prvek pole shody obsahuje shody z každého seskupení pro jednu z nalezených shod řetězce. |
PREG_OFFSET_CAPTURE | Vrátí shody s jejich odpovídajícími pozicemi bajtového offsetu v řetězci předmětu. |
PREG_UNMATCHED_AS_NULL | Nespárované vzory se budou hlásit jako NULL. |
Příklad 1
Zvažte následující příklad použití preg_match_all() funkce v PHP. V tomto kódu hledáme slovo Linux v řetězci. Tato funkce zobrazuje počet nalezených shod se slovem Linux :
$string = 'Ahoj linuxoví nadšenci, vítejte v LinuxHint!' ;
$vzor = '/Linux/' ;
$ odpovídá = pole ( ) ;
preg_match_all ( $vzor , $string , $ odpovídá ) ;
tisk_r ( $ odpovídá [ 0 ] ) ;
?>
Příklad 2
V tomto příkladu kódu hledáme slovo E v řetězci. Malé i se používá k tomu, aby vyhledávání nerozlišovalo malá a velká písmena. Vrátí všechny výskyty řetězců slova E nebo e:
$string = 'VÍTEJTE V USA.' ;
$patternRex = '/E/i' ;
$matchFound = preg_match_all ( $patternRex , $string , $ odpovídá ) ;
-li ( $matchFound ) {
echo '
'
;tisk_r ( $ odpovídá ) ;
}
?>
Příklad 3
Pokud hledaný vzor není v řetězci přítomen, funkce vrátí hodnotu false, což znamená chybu. Chcete-li to zvládnout, můžete použít příkazy if-else. Pokud vzor nebyl nalezen, můžete vytisknout zprávu pomocí příkazu else, abyste informovali uživatele, že vzor nebyl nalezen.
$string = 'PHP je populární skriptovací jazyk' ;
$patternRex = '/čurat/' ;
$matchFound = preg_match_all ( $patternRex , $string , $ odpovídá ) ;
-li ( $matchFound ) {
echo '
'
;echo 'Shoda nalezena.' ;
tisk_r ( $ odpovídá ) ;
} jiný {
echo 'Žádná shoda nenalezena.' ;
}
?>
Poznámka : The tag ve výše uvedeném kódu se používá k formátování výstupu.
Sečteno a podtrženo
Regulární výrazy jsou mocným nástrojem pro vyhledávání a manipulaci s textem v PHP. The preg_match_all() funkce je vestavěná funkce PHP, která se používá k provedení shody regulárního výrazu s řetězcem a načtení všech výskytů vzoru, a pokud vzor neexistuje, vrátí hodnotu false. Pochopení preg_match_all() funkce pomůže uživatelům lépe zacházet a zpracovávat textová data v PHP.