Begræns input til alfanumeriske tegn i et hvilket som helst sprog
Dette regulære udtryk begrænser input til bogstaver og tal fra et hvilket som helst sprog eller script:
^+$
Regex-muligheder: Ingen
Regex-varianter: .NET, Java, XRegExp, PCRE, Perl, Ruby 1.9
Dette bruger en tegnklasse, der indeholder forkortelser for alle kodepunkter i Unicode-kategorierne bogstav, mærke og decimaltal, hvilket følger den officielle Unicode-definition af et alfanumerisk tegn. Mark-kategorien er medtaget, da marker er nødvendige for ord på mange sprog. Mærker er kodepunkter, der er beregnet til at blive kombineret med andre tegn (f.eks. for at danne en accentudgave af et grundbogstav).
Unheldigvis understøttes Unicode-kategorierne ikke af alle de regulære udtryksvarianter, der er omfattet af denne bog. Specifikt vil denne regex ikke fungere med JavaScript (medmindre du bruger XRegExp), Python eller Ruby 1.8’s native flavor. Brug af denne regex med PCRE kræver, at PCRE kompileres med UTF-8-understøttelse, og Unicode-kategorier kan bruges med PHP’s preg
-funktioner (som er afhængige af PCRE), hvis /u
-indstillingen tilføjes til regexet.
Den følgende regex viser en løsning for Python:
^+$
Regex-indstillinger: Unicode
Regex-varianter: Python
Her omgår vi manglen på Unicode-kategorier i Python ved at bruge UNICODE
– eller U
-flaget, når vi opretter det regulære udtryk. Dette ændrer betydningen af nogle regex-tokens ved at få dem til at bruge Unicode-tegntabellen. ‘\w
‘ bringer os så det meste af vejen til en løsning, da det matcher alfanumeriske tegn og understregningen. Ved at bruge dens omvendte ‘\W
‘ i en negeret tegnklasse kan vi fjerne understregningen fra dette sæt. Dobbelte negativer som denne er lejlighedsvis ganske nyttige i regulære udtryk, selv om de kan være svære at forstå. Python 3.x inkluderer som standard ikke-ASCII-tegn i shorthands som ‘\w
‘, og kræver derfor ikke UNICODE
-flaget.