Tegnsæt i regulære udtryk i JavaScript
Tegngrupperne \d og \w er ikke
særlig fleksible. Selv en så simpel opgave
som at finde alle bogstaver, men ikke tal -
kan ikke løses af dem. Til sådanne opgaver
skal man bruge kantede parenteser, som repræsenterer
en 'eller'-operation.
Kantede parenteser erstatter et enkelt tegn,
ethvert af de, der er listet indeni. For eksempel,
sådan her: /x[abc]x/ - siger vi, at
der skal stå x'er i kanterne, og indeni
- et enkelt tegn: enten 'a', eller 'b',
eller 'c'.
Efter kantede parenteser kan man skrive gentagelses-
operatorer. For eksempel, sådan her: /x[abc]+x/
- siger vi, at der inden for x'erne kan være
et hvilket som helst antal tegn 'a', 'b'
og 'c' - i alle mulige kombinationer.
Man kan ikke kun liste tegn op, men også skabe
tegn-grupper ved at skrive en bindestreg mellem to tegn.
For eksempel, sådan her: [a-d] -
får vi alle tegn fra 'a' til
'd'.
Lad os se på eksempler.
Eksempel
I dette eksempel ser søgemønsteret sådan ud:
mellem x'erne ethvert bogstav fra 'a'
til 'z':
let str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g, '!');
Resultatet i variablen vil være følgende:
'! ! ! x@x'
Eksempel
I dette eksempel ser søgemønsteret sådan ud:
mellem x'erne ethvert bogstav fra 'a'
til 'k':
let str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g, '!');
Resultatet i variablen vil være følgende:
'! ! xmx x@x'
Eksempel
I dette eksempel ser søgemønsteret sådan ud:
mellem x'erne ethvert bogstav fra 'A'
til 'Z':
let str = 'xax xBx xcx x@x';
let res = str.replace(/x[A-Z]x/g, '!');
Resultatet i variablen vil være følgende:
'xax ! xcx x@x'
Eksempel
I dette eksempel ser søgemønsteret sådan ud:
mellem x'erne ethvert tal fra 0 til 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[0-9]x/g, '!');
Resultatet i variablen vil være følgende:
'xax ! ! ! x@x'
Eksempel
I dette eksempel ser søgemønsteret sådan ud:
mellem x'erne ethvert tal fra 3 til 7:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[3-7]x/g, '!');
Resultatet i variablen vil være følgende:
'xax x1x ! ! x@x'
Eksempel
I dette eksempel ser søgemønsteret sådan ud:
mellem x'erne ethvert bogstav fra 'a'
til 'z' eller et tal fra 1 til 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[a-z1-9]x/g, '!');
Resultatet i variablen vil være følgende:
'! ! ! ! x@x'
Eksempel
I dette eksempel ser søgemønsteret sådan ud:
mellem x'erne ethvert bogstav fra 'a'
til 'z' eller et bogstav fra 'A' til
'Z':
let str = 'xax xBx xcx x5x x@x';
let res = str.replace(/x[a-zA-Z]x/g, '!');
Resultatet i variablen vil være følgende:
'! ! ! x5x x@x'
Eksempel
I dette eksempel ser søgemønsteret sådan ud:
mellem x'erne ethvert bogstav 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 i variablen vil være følgende:
'! ! ! ! x3x'
Eksempel
I dette eksempel ser søgemønsteret sådan ud:
mellem x'erne bogstaver fra 'a' til 'z'
i en mængde fra 1 og derover:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]+x/g, '!');
Resultatet i variablen vil være følgende:
'xx ! ! ! x123x xa3x'
Eksempel
Lad os gøre det så antallet af bogstaver også kan være nul:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]*x/g, '!');
Resultatet i variablen vil være følgende:
'! ! ! ! x123x xa3x'
Praktiske opgaver
Givet en streng:
let str = 'aba aea aca aza axa';
Skriv et regulært udtryk, der finder efter følgende
mønster: i kanterne står bogstaverne 'a',
og mellem dem - bogstavet 'b', 'e'
eller 'x'.
Givet en streng:
let str = 'a1a a3a a7a a9a aba';
Skriv et regulært udtryk, der finder efter følgende
mønster: i kanterne står bogstaverne 'a',
og mellem dem - et tal fra 3-ere til 6-ere.
Givet en streng:
let str = 'aba aea afa aha aga';
Skriv et regulært udtryk, der finder efter følgende
mønster: i kanterne står bogstaverne 'a',
og mellem dem - et bogstav fra a til g.
Givet en streng:
let str = 'aba aea afa aha aga';
Skriv et regulært udtryk, der finder efter følgende
mønster: i kanterne står bogstaverne 'a',
og mellem dem - et bogstav fra a til f og fra j til z.
Givet en streng:
let str = 'aAa aea aEa aJa a3a';
Skriv et regulært udtryk, der finder efter følgende
mønster: i kanterne står bogstaverne 'a',
og mellem dem - et bogstav fra a til f og fra A til D.
Givet en streng:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Skriv et regulært udtryk, der finder efter følgende
mønster: i kanterne står bogstaverne 'a',
og mellem dem - små latinske bogstaver,
uden at berøre de andre.
Givet en streng:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Skriv et regulært udtryk, der finder efter følgende
mønster: i kanterne står bogstaverne 'a',
og mellem dem - små og store latinske
bogstaver, uden at berøre de andre.
Givet en streng:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Skriv et regulært udtryk, der finder efter følgende
mønster: i kanterne står bogstaverne 'a',
og mellem dem - små latinske bogstaver
og tal, uden at berøre de andre.