⊗ppPmRgRO 224 of 447 menu

Tegn-gentagelsesoperatorer i regulære udtryk

Der opstår situationer, hvor vi ønsker at angive, at et tegn gentages et bestemt antal gange. Hvis vi kender det præcise antal gentagelser, kan vi blot skrive det flere gange - #aaaa#. Men hvad gør vi, hvis vi vil sige sådan her: gentag en eller flere gange?

Til dette eksisterer der operatorer kaldet (kvantifikatorer) for gentagelse: plus + (en eller flere gange), stjerne * (nul eller flere gange) og spørgsmålstegn ? (nul eller én gang). Disse operatorer virker på det tegn, som står foran dem.

Lad os se på arbejdet med disse operatorer med eksempler.

Eksempel

Lad os finde alle delstrenge efter mønsteret bogstav 'x', bogstav 'a' en eller flere gange, bogstav 'x':

<?php $str = 'xx xax xaax xaaax xbx'; $res = preg_replace('#xa+x#', '!', $str); ?>

Som resultat vil følgende blive skrevet i variablen:

'xx ! ! ! xbx'

Eksempel

Lad os finde alle delstrenge efter mønsteret bogstav 'x', bogstav 'a' nul eller flere gange, bogstav 'x':

<?php $str = 'xx xax xaax xaaax xbx'; $res = preg_replace('#xa*x#', '!', $str); ?>

Som resultat vil følgende blive skrevet i variablen:

'! ! ! ! xbx'

Eksempel

Lad os finde alle delstrenge efter mønsteret bogstav 'x', bogstav 'a' nul eller én gang, bogstav 'x':

<?php $str = 'xx xax xaax xbx'; $res = preg_replace('#xa?x#', '!', $str); ?>

Som resultat vil følgende blive skrevet i variablen:

'! ! xaax xbx'

Praktiske opgaver

Givet en streng:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Skriv et regulært udtryk, der finder strenge efter mønsteret: bogstav 'a', bogstav 'b' en eller flere gange, bogstav 'a'.

Givet en streng:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Skriv et regulært udtryk, der finder strenge efter mønsteret: bogstav 'a', bogstav 'b' nul eller flere gange, bogstav 'a'.

Givet en streng:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Skriv et regulært udtryk, der finder strenge efter mønsteret: bogstav 'a', bogstav 'b' én gang eller ingen gange, bogstav 'a'.

Givet en streng:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Skriv et regulært udtryk, der finder strengene 'aa', 'aba', 'abba', 'abbba', uden at fange 'abca' og 'abea'.

swesrodatr