Tegnsett i regulære uttrykk for JavaScript
Tegngruppene \d og \w er ikke
veldig fleksible. Selv en så enkel oppgave
som å finne alle bokstaver, men ikke tall -
kan ikke løses av dem. For slike oppgaver
bor man bruke hakeparenteser, som representerer
en 'eller'-operasjon.
Hakeparenteser erstatter ett enkelt tegn,
hvilket som helst av de som er opplistet inni. For eksempel,
slik: /x[abc]x/ - sier vi at
det skal stå x-er på kantene, og inni
- ett tegn: enten 'a', eller 'b',
eller 'c'.
Etter hakeparenteser kan man skrive repetisjons-
operatorer. For eksempel, slik: /x[abc]+x/
- sier vi at inni x-ene kan det være
hvilket som helst antall tegn 'a', 'b'
og 'c' - i alle kombinasjoner.
Man kan ikke bare liste opp tegn, men også lage
tegn-grupper ved å skrive bindestrek mellom to tegn.
For eksempel, slik: [a-d] -
får vi alle tegn fra 'a' til
'd'.
La oss se på eksempler.
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
mellom x-ene hvilken som helst bokstav fra 'a'
til 'z':
let str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'! ! ! x@x'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
mellom x-ene hvilken som helst bokstav fra 'a'
til 'k':
let str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'! ! xmx x@x'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
mellom x-ene hvilken som helst bokstav fra 'A'
til 'Z':
let str = 'xax xBx xcx x@x';
let res = str.replace(/x[A-Z]x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'xax ! xcx x@x'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
mellom x-ene hvilket som helst tall fra 0 til 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[0-9]x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'xax ! ! ! x@x'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
mellom x-ene hvilket som helst tall fra 3 til 7:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[3-7]x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'xax x1x ! ! x@x'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
mellom x-ene hvilken som helst bokstav fra 'a'
til 'z' eller tall fra 1 til 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[a-z1-9]x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'! ! ! ! x@x'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
mellom x-ene hvilken som helst bokstav fra 'a'
til 'z' eller bokstav fra 'A' til
'Z':
let str = 'xax xBx xcx x5x x@x';
let res = str.replace(/x[a-zA-Z]x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'! ! ! x5x x@x'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
mellom x-ene hvilken som helst bokstav fra 'a'
til 'z' eller tallene 1, 2:
let str = 'xax xbx x1x x2x x3x';
let res = str.replace(/x[a-z12]x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'! ! ! ! x3x'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
mellom x-ene bokstaver fra 'a' til 'z'
i antall fra 1 og oppover:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]+x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'xx ! ! ! x123x xa3x'
Eksempel
La oss gjøre slik at antall bokstaver kan være null også:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]*x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'! ! ! ! x123x xa3x'
Praktiske oppgaver
Gitt en streng:
let str = 'aba aea aca aza axa';
Skriv et regulært uttrykk som finner etter følgende
mønster: på kantene står bokstaven 'a',
og mellom dem - bokstaven 'b', 'e'
eller 'x'.
Gitt en streng:
let str = 'a1a a3a a7a a9a aba';
Skriv et regulært uttrykk som finner etter følgende
mønster: på kantene står bokstaven 'a',
og mellom dem - et tall fra 3-er til 6-er.
Gitt en streng:
let str = 'aba aea afa aha aga';
Skriv et regulært uttrykk som finner etter følgende
mønster: på kantene står bokstaven 'a',
og mellom dem - en bokstav fra a til g.
Gitt en streng:
let str = 'aba aea afa aha aga';
Skriv et regulært uttrykk som finner etter følgende
mønster: på kantene står bokstaven 'a',
og mellom dem - en bokstav fra a til f og fra j til z.
Gitt en streng:
let str = 'aAa aea aEa aJa a3a';
Skriv et regulært uttrykk som finner etter følgende
mønster: på kantene står bokstaven 'a',
og mellom dem - en bokstav fra a til f og fra A til D.
Gitt en streng:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Skriv et regulært uttrykk som finner etter følgende
mønster: på kantene står bokstaven 'a',
og mellom dem - små latinske bokstaver,
uten å berøre de andre.
Gitt en streng:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Skriv et regulært uttrykk som finner etter følgende
mønster: på kantene står bokstaven 'a',
og mellom dem - små og store latinske
bokstaver, uten å berøre de andre.
Gitt en streng:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Skriv et regulært uttrykk som finner etter følgende
mønster: på kantene står bokstaven 'a',
og mellom dem - små latinske bokstaver
og tall, uten å berøre de andre.