preg_match_all() er en indbygget funktion i PHP, der bruges til at matche det specifikke mønster i en streng. Du kan bruge denne funktion til at udføre matches med regulære udtryk og udtrække data fra strenge. Det kan spare tid og kræfter i tilfælde, hvor du har brug for at søge efter flere forekomster af et mønster og bruges i vid udstrækning i tekstparsing og dataudtræksapplikationer af PHP.
Syntaks
Det følgende er syntaksen for at bruge preg_match_all i PHP:
preg_match_all ( mønster , input , Tændstikker , flag , offset )
Det preg_match_all accepterer følgende parametre, tre er obligatoriske parametre og to er valgfrie:
- mønster : Det er den obligatoriske parameter; det indeholder det regulære udtryk, der skal søges i.
- input : Den anden er også en obligatorisk parameter, da det er den streng, som søgningen udføres i.
- Tændstikker : Den gemmer outputtet i arrayet, der indeholder alle matches.
- flag : Den beskriver, hvordan søgningen eller matcher-arrayet er struktureret. Det ændrer funktionssøgningens adfærd. Følgende flag kan bruges:
- offset : Det er den valgfri parameter, der angiver startpositionen for søgningen.
Flag | Beskrivelse |
---|---|
PREG_PATTERN_ORDER | Den resulterende matrix har alle matchene til en matrix for hvert element i det regulære udtryk. |
PREG_SET_ORDER | Match-arrayets elementer indeholder hver match fra hver gruppering for en af strengens fundne matches. |
PREG_OFFSET_CAPTURE | Det returnerer matchene med deres tilsvarende byte offset positioner i emnestrengen. |
PREG_UNMATCHED_AS_NULL | De umatchede mønstre vil rapportere som NULL. |
Eksempel 1
Overvej følgende eksempel på brug af preg_match_all() funktion i PHP. I denne kode søger vi efter ordet Linux i snoren. Denne funktion udlæser antallet af matches fundet mod ordet Linux :
$streng = 'Hej Linux-entusiaster, Velkommen til LinuxTip!' ;
$mønster = '/Linux/' ;
$kampe = array ( ) ;
preg_match_all ( $mønster , $streng , $kampe ) ;
print_r ( $kampe [ 0 ] ) ;
?>
Eksempel 2
I denne eksempelkode søger vi efter ordet E i strengen. Det lille i bruges til at gøre søgningen ufølsom mellem store og små bogstaver. Det vil returnere alle strengforekomster af ordet E eller e:
$streng = 'VELKOMMEN TIL USA.' ;
$patternRex = '/E/i' ;
$matchFundet = preg_match_all ( $patternRex , $streng , $kampe ) ;
hvis ( $matchFundet ) {
ekko '
print_r ( $kampe ) ;
}
?>
Eksempel 3
Hvis det mønster, du søger efter, ikke er til stede i strengen, vil funktionen returnere falsk, hvilket indikerer en fejl. For at håndtere dette kan du bruge if-else-sætninger. Hvis mønsteret ikke findes, kan du udskrive en besked ved hjælp af else-erklæringen for at informere brugeren om, at mønsteret ikke blev fundet.
$streng = 'PHP er et populært scriptsprog' ;
$patternRex = '/peE/' ;
$matchFundet = preg_match_all ( $patternRex , $streng , $kampe ) ;
hvis ( $matchFundet ) {
ekko '
ekko 'Match fundet.' ;
print_r ( $kampe ) ;
} andet {
ekko 'Ingen match fundet.' ;
}
?>
Bemærk : Det tag i ovenstående kode bruges til at formatere output.
Bundlinie
Regulære udtryk er et kraftfuldt værktøj til at søge og manipulere tekst i PHP. Det preg_match_all() function er en indbygget PHP-funktion, der bruges til at udføre et regulært udtryksmatch mod en streng og hente alle forekomster af mønsteret, og hvis mønsteret ikke eksisterer, vil det returnere falsk. Forståelse af preg_match_all() funktion vil hjælpe brugere til bedre at håndtere og behandle tekstdata i PHP.