Kommandot 'eller' i reguljära uttryck i PHP
I den här lektionen kommer vi att analysera kommandot
|, som representerar en mer
kraftfull variant av ELLER jämfört med
kommandot []. Detta kommando tillåter
oss att dela upp det reguljära uttrycket i flera delar.
Sökningen kan antingen matcha en del
av det reguljära uttrycket eller en annan. Låt oss
titta på exempel.
Exempel
I detta exempel är sökmönstret: tre
bokstäver 'a' eller tre bokstäver 'b':
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
Som ett resultat kommer följande att skrivas till variabeln:
'! ! abb'
Exempel
I detta exempel är sökmönstret: tre
bokstäver 'a' eller från 1 och fler
bokstäver 'b':
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
Som ett resultat kommer följande att skrivas till variabeln:
'! ! ! ! axx'
Exempel
I detta exempel är sökmönstret: en eller flera bokstäver eller tre siffror:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
Som ett resultat kommer följande att skrivas till variabeln:
'! ! ! 1 12 !'
Exempel
Det vertikala strecket kan dela upp det reguljära uttrycket i inte bara två delar, utan i valfritt antal delar:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
Som ett resultat kommer följande att skrivas till variabeln:
'! ! ! ddd'
Exempel
Om det vertikala strecket står inom runda
parenteser, så fungerar 'eller' endast inom
dessa parenteser. Låt oss som ett exempel hitta strängar
med följande mönster: i början står
antingen 'a', eller 'b' en eller flera
gånger, och sedan två bokstäver 'x':
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
Som ett resultat kommer följande att skrivas till variabeln:
'! ! ! exx'
Praktiska uppgifter
Given en sträng:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Skriv ett reguljärt uttryck som hittar strängar
enligt mönstret: vid kanterna står bokstäverna 'a',
och mellan dem - antingen bokstaven 'e' valfritt
antal gånger eller bokstaven 'x' valfritt
antal gånger.
Given en sträng:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Skriv ett reguljärt uttryck som hittar strängar
enligt mönstret: vid kanterna står bokstäverna 'a',
och mellan dem - antingen bokstaven 'e' två gånger
eller bokstaven 'x' valfritt antal gånger.