⚠️ Malware / Trojaner / VirenAndroid-Malware blockiert Google Play per VPN-Trick(24.08.2026 um 13:00 Uhr)
🪟 Windows TippsWindows 11: Falsche Defender-Warnungen und kaputte Mauszeiger(31.08.2026 um 11:58 Uhr)
🕵️ SicherheitslückenDropbox-Hack: Tausende Konten kompromittiert(02.09.2026 um 11:02 Uhr)
⚠️ Malware / Trojaner / VirenAtombomben-Frage trickst KI-Malware-Scanner aus(02.09.2026 um 12:46 Uhr)
🪟 Windows TippsMehr Sicherheit in Windows 11(03.09.2026 um 11:51 Uhr)
⚠️ Malware / Trojaner / VirenNeue Android-Malware schreit Sie an, wenn Sie nicht zahlen(11.09.2026 um 10:33 Uhr)
🐧 Linux TippsMehrere Probleme in freerdp2 (Fedora)(11.09.2026 um 23:24 Uhr)
🐧 Linux TippsMehrere Probleme in kamailio (Debian)(11.09.2026 um 23:28 Uhr)
🐧 Linux TippsAusführen beliebiger Kommandos in dokuwiki (Fedora)(11.09.2026 um 23:28 Uhr)
🐧 Linux TippsAusführen beliebiger Kommandos in python-asteval (Fedora)(11.09.2026 um 23:28 Uhr)
⚠️ Malware / Trojaner / VirenAndroid-Malware blockiert Google Play per VPN-Trick(24.08.2026 um 13:00 Uhr)
🪟 Windows TippsWindows 11: Falsche Defender-Warnungen und kaputte Mauszeiger(31.08.2026 um 11:58 Uhr)
🕵️ SicherheitslückenDropbox-Hack: Tausende Konten kompromittiert(02.09.2026 um 11:02 Uhr)
⚠️ Malware / Trojaner / VirenAtombomben-Frage trickst KI-Malware-Scanner aus(02.09.2026 um 12:46 Uhr)
🪟 Windows TippsMehr Sicherheit in Windows 11(03.09.2026 um 11:51 Uhr)
⚠️ Malware / Trojaner / VirenNeue Android-Malware schreit Sie an, wenn Sie nicht zahlen(11.09.2026 um 10:33 Uhr)
🐧 Linux TippsMehrere Probleme in freerdp2 (Fedora)(11.09.2026 um 23:24 Uhr)
🐧 Linux TippsMehrere Probleme in kamailio (Debian)(11.09.2026 um 23:28 Uhr)
🐧 Linux TippsAusführen beliebiger Kommandos in dokuwiki (Fedora)(11.09.2026 um 23:28 Uhr)
🐧 Linux TippsAusführen beliebiger Kommandos in python-asteval (Fedora)(11.09.2026 um 23:28 Uhr)

🔧 Programmierung 🕛 vor 2 Monaten 4 Min Lesezeit
0

Stop Copy-Pasting Regex You Don't Understand: 5 Patterns Explained

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht




Stop Copy-Pasting Regex You Don't Understand: 5 Patterns Explained



Every developer has done it: you Google "regex for email," copy the first Stack Overflow answer, paste it into your code, and cross your fingers that it covers all edge cases. Then six months later, [email protected] slips through and breaks something.



Let's fix that. Here are five regex patterns you probably copy-paste, explained so you actually understand them — and can adapt them yourself.






1. Email Validation: The Pattern Everyone Gets Wrong






CODE
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}






Broken down:





  • [a-zA-Z0-9._%+-]+ — username part: letters, digits, dots, underscores, percent, plus, hyphens. The + means "one or more."


  • @ — literal at sign.


  • [a-zA-Z0-9.-]+ — domain name: letters, digits, dots, hyphens.


  • \. — literal dot (escaped because . normally means "any character").


  • [a-zA-Z]{2,} — TLD: at least 2 letters.



When it fails: Unicode characters in the local part (café@example.com), quoted strings, IP-address domains. For production email validation, send a confirmation link — regex alone can't guarantee deliverability.






2. URL Extraction: Greedy vs. Lazy Trap






CODE
https?:\/\/[^\s/$.?#].[^\s]*








  • https? — "http" optionally followed by "s." The ? makes the preceding character optional.


  • :\/\/ — literal :// (forward slashes must be escaped outside character classes).


  • [^\s/$.?#] — match one character that is NOT whitespace, /, $, ., ?, or #. This prevents matching bare punctuation.


  • [^\s]* — then match everything until whitespace (\s). Note the * (zero or more) — if the URL is followed by a space, it stops there.



Pitfall: The * after [^\s] is greedy — always use it with a character class ([^\s]) rather than . to avoid gobbling up surrounding text. Test this in the regex tester with URLs embedded in paragraphs to see the difference.






3. IP Address Extraction: Backreference Magic






CODE
\b(?:\d{1,3}\.){3}\d{1,3}\b








  • \b — word boundary: ensures we don't match "192.168.1.1" inside "192.168.1.100".


  • (?:\d{1,3}\.) — a non-capturing group (?:): one to three digits followed by a dot. Non-capturing groups group without saving the match.


  • {3} — repeat the group exactly 3 times. So we get 123.45.67.


  • \d{1,3} — final octet, no trailing dot.


  • \b — word boundary again.



This pattern doesn't validate IPs — it matches 999.999.999.999. For validation, you'd need a much more complex pattern checking each octet's range (0-255). This pattern's job is extraction, not validation — it finds anything that looks like an IP in a log file.






4. Date Extraction (ISO 8601): Character Classes Done Right






CODE
\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])








  • \d{4} — exactly 4 digits (the year).


  • - — literal hyphen.


  • (0[1-9]|1[0-2]) — month: either 0 followed by 1-9 (Jan-Sep) OR 1 followed by 0-2 (Oct-Dec). The | means "OR."


  • - — literal hyphen.


  • (0[1-9]|[12]\d|3[01]) — day: 0[1-9] (1st-9th) OR [12]\d (10-29) OR 3[01] (30-31).



Known limitation: This accepts invalid dates like 2025-02-30. For bulletproof date validation, parse with a date library after the regex confirms the format.






5. The "Everything Between Tags" Problem






CODE
<([a-zA-Z][a-zA-Z0-9]*)>(.*?)<\/\1>








  • <([a-zA-Z][a-zA-Z0-9]*)> — opening tag: <, a letter, then optional alphanumeric characters, >. The parentheses capture the tag name.


  • (.*?) — content between tags. The ? after * makes it lazy — stop at the first closing tag, not the last.


  • <\/\1> — closing tag: <, /, then (backreference to the first capture group, the tag name), >.



Without the lazy *?, <.*> applied to <div>hello</div> would match the entire string instead of just <div>. This is the #1 "why isn't my regex working" moment.






The Debugging Workflow I Actually Use




  1. Start with a known-good preset (email, URL, IPv4 from the tool's library)

  2. Tweak one thing at a time, watching the match highlights change in real-time

  3. Add edge cases to the test string: empty input, special chars, unicode

  4. Only move to production code when the tester shows exactly what you expect



I use the free Regex Tester at codetoolbox.pro/tools/regex-tester.html for this — it runs entirely in the browser, highlights matches instantly, and shows capture groups individually. No signup, no server uploads.






What's the regex that burned you the worst? Drop a comment — genuinely curious how many of us have been bitten by the same patterns.

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
Stealing AI Reasoning Traces
1 Quelle
AIs as Modern Genies
1 Quelle
Bitcoin: KI-Hacker räumen Millionen ab! Wird Künstliche Intelligenz zum Problem? - ftd.de
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Stop Copy-Pasting Regex You Don't Understand: 5 Patterns Explained

Thematisch verwandte Begriffe: Stop, CopyPasting, Regex, Dont · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...