Regex-testeri

Tietoa tästä työkalusta

Suorita säännöllinen lauseke syöteteksi ja tarkastele osumia. Kaikki suoritus tapahtuu selaimessasi; dataa ei lähetetä minnekään.

Suorita testi

Käyttöohje

  1. Syötä säännöllinen lauseke sekä tarvittavat liput.
  2. Paina “Suorita testi”, niin osumat korostuvat syötekentässä.

Esimerkkejä (yli 100 valmista regex-kuviota kategorioittain)

Peruskuviot / välilyönnit / rivit
  • Pelkkä tyhjä rivi: ^\s*$ (m)
  • Alun välilyönnit: ^\s+ (m)
  • Loppuvälilyönnit: \s+$ (m)
  • Trimmaa alku- ja loppuvälit: ^\s+|\s+$ (m)
  • Yhdistä peräkkäiset välit: \s{2,}
  • Näkyvät merkit (ei välilyöntiä): \S+
  • Pelkkä ASCII: ^[\x00-\x7F]+$
  • Tulostettava ASCII: ^[\x20-\x7E]+$
  • Sisältää muita kuin ASCII-merkkejä: [^\x00-\x7F]
  • Sanan rajaus: \bword\b
Numerot ja valuutta
  • Kokonaisluku (valinnainen etumerkki): ^-?\d+$
  • Desimaaliluku (valinnainen etumerkki): ^-?\d*\.\d+$
  • Luku (kokonais- tai desimaaliluku): ^-?(?:\d+|\d*\.\d+)$
  • Tuhateroitettu luku (esim. 1,234,567): ^\d{1,3}(?:,\d{3})+$
  • Valuutta (¥ tai $ + valinnainen ryhmittely): ^(?:¥|\$)\s?\d{1,3}(?:,\d{3})*(?:\.\d{2})?$
  • Prosentti: ^\d{1,3}(?:\.\d+)?%
  • Tieteellinen notaatio: ^[+-]?(?:\d+\.?\d*|\.\d+)[eE][+-]?\d+$
  • Heksadesimaali: ^(?:0x)?[0-9A-Fa-f]+$
  • Binääri: ^[01]+$
  • Oktaali: ^[0-7]+$
Päivämäärä ja aika
  • Päivämäärä YYYY-MM-DD (muototarkistus): ^\d{4}-\d{2}-\d{2}$
  • Aika HH:MM (24 h): ^(?:[01]\d|2[0-3]):[0-5]\d$
  • Aika HH:MM:SS (24 h): ^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$
  • ISO8601-aikaleima (yksinkertainen): ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$
  • Vuosi/kuukausi (YYYY/MM): ^\d{4}/(0[1-9]|1[0-2])$
  • Japanin Reiwa-kausi (yksinkertaistettu): ^令和\d+年(?:\d+月(?:\d+日)?)?$ (u)
  • Viikonpäivä (engl. lyhenne): ^(Mon|Tue|Wed|Thu|Fri|Sat|Sun)$
  • Aikavyöhyke (±HH:MM): ^[+-](?:[01]\d|2[0-3]):[0-5]\d$
Yhteystiedot ja osoitteet
  • Japanilainen postinumero: ^\d{3}-\d{4}$
  • Japanilainen puhelin (0x-xxxx-xxxx): ^0\d{1,4}-\d{1,4}-\d{4}$
  • Kansainvälinen puhelin (+maatunnus): ^\+\d{1,3}\s?\d+(?:[\s-]\d+)*$
  • Japanin prefektuurit: ^(?:東京都|北海道|(?:京都|大阪)府|.+県)$ (u)
  • Sähköposti (yleinen tarkistus): ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$
  • Käyttäjänimi (3–16 merkkiä, a–z/0–9/_): ^[A-Za-z0-9_]{3,16}$
  • Salasanan vahvuus (isot/pienet/numerot/erikoismerkit, ≥8): ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{8,}$
Web / URL / HTTP
  • URL (http/https, nopea): https?:\/\/\S+
  • Verkkotunnus (ei Punycodea): ^(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}$
  • Isäntä aliverkkotunnuksineen: ^(?:[A-Za-z0-9-]+\.)*[A-Za-z0-9-]+\.[A-Za-z]{2,}$
  • Kyselyparametri key=value: [?&]([A-Za-z0-9._~-]+)=([^&#]+)
  • Fragmentti: #\w[\w-]*
  • Tiedostopääte (.png|.jpg|.gif jne.): \.(?:png|jpe?g|gif|webp|svg)$ (i)
  • HTTP-metodit: ^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)$
  • HTTP-otsakerivi: ^[A-Za-z0-9-]+:\s?.+$ (m)
  • Basic-autentikaation otsake: ^Basic\s+[A-Za-z0-9+/=]+$
  • Bearer-tunnisteen otsake: ^Bearer\s+[A-Za-z0-9\-\._~\+\/]+=*$
Verkkotunnisteet (IP/MAC/CIDR/UUID/JWT)
  • IPv4 (0–255 tarkka): \b(?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\b
  • IPv6 (lyhennykset tuettu, yksinkertainen): \b(?:[A-Fa-f0-9]{1,4}:){2,7}[A-Fa-f0-9]{1,4}\b
  • MAC-osoite (pistein): ^(?:[0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$
  • MAC-osoite (väliviivoin): ^(?:[0-9A-Fa-f]{2}-){5}[0-9A-Fa-f]{2}$
  • CIDR (IPv4, pituus 0–32): ^\b(?:\d{1,3}\.){3}\d{1,3}\/(?:[0-9]|[12]\d|3[0-2])\b$
  • UUID v4: ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ (i)
  • GUID (kirjaimista riippumaton): ^{?[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}}?$ (i)
  • Base64 (sis. paddingin): ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
  • JWT (kolme pistettä): ^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+$
  • SSH-julkinen avain (ssh-rsa/ed25519): ^ssh-(?:rsa|ed25519)\s+[A-Za-z0-9+/=]+(?:\s.+)?$
Tiedostot / polut / versiot
  • Windowsin absoluuttinen polku: ^[A-Za-z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$
  • UNIX-absoluuttipolku: ^\/(?:[^\/\0]+\/)*[^\/\0]*$
  • Turvallinen tiedostonimi (a-z, 0-9, ._-): ^[A-Za-z0-9._-]+$
  • Tiedostopäätteen poiminta: \.([A-Za-z0-9]+)$
  • Git-hash (7–40 merkkiä): ^[0-9a-f]{7,40}$
  • SemVer-versio: ^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$
  • Docker image:tag: ^[a-z0-9]+(?:[._-][a-z0-9]+)*(?::[\w.-]+)?$
  • NPM-paketin nimi (yksinkertainen): ^(?:@[\w-]+\/)?[\w.-]+$
  • URL-slugi: ^[a-z0-9]+(?:-[a-z0-9]+)*$
Web-frontend (HTML/CSS/värit)
  • HTML-tagit (yksinkertainen aloitus/lopetus): <([A-Za-z][A-Za-z0-9]*)\b[^>]*>([\s\S]*?)<\/\1>
  • HTML-kommentti: <!--[\s\S]*?-->
  • href-attribuutin arvo: href\s*=\s*"(.*?)" (i)
  • CSS-väri (#RGB/#RRGGBB): ^#(?:[0-9A-Fa-f]{3}){1,2}$
  • CSS rgb(): ^rgb\(\s*(?:[01]?\d?\d|2[0-4]\d|25[0-5])\s*,\s*(?:[01]?\d?\d|2[0-4]\d|25[0-5])\s*,\s*(?:[01]?\d?\d|2[0-4]\d|25[0-5])\s*\)$
  • CSS hsl(): ^hsl\(\s*(?:\d|[1-2]\d{2}|3[0-5]\d)\s*,\s*(?:\d|[1-9]\d)%\s*,\s*(?:\d|[1-9]\d)%\s*\)$
  • CSS-yksikkö (px, em, jne.): ^-?\d+(?:\.\d+)?(?:px|em|rem|vh|vw|%)$
Merkkijonot ja syntaksi (koodikatkelmat)
  • JavaScript-tunniste (yksinkertainen): ^[A-Za-z_$][A-Za-z0-9_$]*$
  • JavaScriptin //-kommenttirivi: ^\s*\/\/.*$ (m)
  • JavaScriptin blokki-kommentti: \/\*[\s\S]*?\*\/
  • Kaksoislainattu merkkijono: "(?:[^"\\]|\\.)*"
  • Yksittäislainattu merkkijono: '(?:[^'\\]|\\.)*'
  • Template literal (yksinkertainen): `(?:[^`\\]|\\.|\\${[^}]*})*`
  • JSON-avain: "([A-Za-z0-9_]+)"\s*:
  • CSV-solu (kaksoislainaus tuettu): (?:"(?:[^"]|"")*"|[^,\r\n]*)
  • URL:n poiminta sähköpostitekstistä: https?:\/\/[^\s)>"]+
Turvallisuus / validointi (käytä harkiten)
  • Luottokortti (ei Luhnia, nopea): \b(?:\d[ -]*?){13,19}\b
  • VISA (alkaa 4:llä, 13/16/19 numeroa): \b4\d{12}(?:\d{3})?(?:\d{3})?\b
  • Mastercard (51–55 / 2221–2720): \b(?:5[1-5]\d{14}|2(?:2[2-9]\d{2}|[3-6]\d{3}|7[01]\d{2}|720\d{2})\d{10})\b
  • Japanin My Number (muototarkistus): ^\d{12}$
  • Postinumero + osoiterivi (nopea): ^\d{3}-\d{4}\s+.+$
  • <script>-elementin haku (yksinkertainen XSS-testi): <\s*script\b[^>]*>[\s\S]*?<\s*\/\s*script\s*>
  • SQL-avainsanat (yksinkertainen): \b(SELECT|INSERT|UPDATE|DELETE|DROP|ALTER|CREATE)\b (i)

Huomio: henkilö- tai luottamuksellista dataa käsiteltäessä tarkista aina lainsäädäntö ja organisaation ohjeet.

Lokit ja formaatit
  • Apache/Nginx CLF (yksinkertainen): ^(\S+)\s+(\S+)\s+(\S+)\s+\[([^\]]+)\]\s+"([^"]+)"\s+(\d{3})\s+(\d+|-)
  • ISO8601-aikaleiman poiminta: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})
  • JSON Lines (1 JSON per rivi): ^\{.*\}$ (m)
  • UUID-poiminta: [0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12} (i)
  • IP-osoitteen poiminta (yksinkertainen IPv4): \b(?:\d{1,3}\.){3}\d{1,3}\b
Markdown
  • Otsikko (#–######): ^(#{1,6})\s+(.+)$ (m)
  • Linkki: \[([^\]]+)\]\(([^)]+)\)
  • Kuva: !\[([^\]]*)\]\(([^)]+)\)
  • Inline-koodi: `([^`]+)`
  • Koodiblokki (```…``` yksinkertainen): ```[\s\S]*?```
  • Luettelomerkki (- * +): ^\s*[-*+]\s+.+$ (m)
  • Lainaus >: ^\s*>\s+.+$ (m)
Japanilaiset kirjoitusjärjestelmät (Unicode, u-lippu)
  • Pelkkä hiragana: ^[\u3041-\u3096]+$ (u)
  • Pelkkä katakana: ^[\u30A1-\u30FA\u30FC]+$ (u)
  • Puolileveä katakana: ^[\uFF66-\uFF9D\uFF70]+$ (u)
  • Sisältää kanjia: [\u4E00-\u9FFF] (u)
  • Vain täysleveät merkit: ^[^\x00-\x7F]+$
  • Täysleveät kirjaimet ja numerot: ^[\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A]+$ (u)
  • Postinumero (täysleveät numerot sallittu): ^[0-9\d]{3}-[0-9\d]{4}$ (u)
  • Furigana (täysleveä katakana): ^[\u30A1-\u30FA\u30FC\s]+$ (u)
Tekstin käsittelyn apurit
  • Poista alkupiste “1. ”: ^\s*\d+\.\s* (m)
  • Poista luettelomerkit: ^\s*(?:[-*+]|•|\d+\.)\s* (m)
  • Poimi tekstin sisältö sulkujen sisältä: \(([^)]*)\)
  • Poimi tuplalainojen sisältö: "([^"\\]|\\.)*"
  • Poimi jenimäärä “¥123,456”: ¥\s?\d{1,3}(?:,\d{3})*
  • Poimi sähköpostin domain: @([A-Za-z0-9.-]+\.[A-Za-z]{2,})
  • Poista HTML-tagit (yksinkertainen): <[^>]+>
  • Tiivistä useat välit yhdeksi: \s{2,}
Muuta hyödyllistä
  • Japanilainen ajoneuvonumero (erittäin karkea): ^[\u3041-\u3096\u30A1-\u30FA\u4E00-\u9FFF]{1,2}\s?\d{3,4}$ (u)
  • YouTube-video-ID: (?<=v=|youtu\.be\/)[A-Za-z0-9_-]{11}
  • Twitter/X-käyttäjä @-tunnus: @[A-Za-z0-9_]{1,15}
  • Slack-kanava: #[a-z0-9_-]{1,80}
  • Väriavaimet (esimerkkijoukko): \b(?:red|green|blue|black|white|gray|silver|maroon)\b (i)
  • Huomautukset hakasulkeissa […]: [([^]]*)]|【([^】]*)】|〔([^〕]*)〕 (u)
  • Puolileveyden katakana: [\uFF61-\uFF9F] (u)
  • Englanninkielinen sana (hyphen sallittu): \b[A-Za-z]+(?:-[A-Za-z]+)*\b
  • Tilausnumero sähköpostissa (esim. #12345): #\d{4,}
  • Japanilainen aseman nimi (päättyy “駅”): .+駅\b (u)

Yllä olevat kuviot ovat käytännöllisiä oletuksia. Tarkkaan validointiin (karkausvuodet, IDN-osoitteet, täysi HTML-jäsennys jne.) kannattaa käyttää erillisiä algoritmeja tai kirjastoja.