{"slug": "regex", "name": "regex", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 5, "warners": 0, "score": 3.232, "rising": 0.35, "first": "2026-01-06", "latest": "2026-09-11", "why": "design deliberately puts a reasonable upper bound on worst-case time complexity", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 2, "compare": 0, "warn": 0}, "spark": [0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "design deliberately puts a reasonable upper bound on worst-case time complexity", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/burntsushi/rebar", "official_url": "https://github.com/rust-lang/regex", "pricing": "", "aliases": ["regex"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 794576881, "item_id": 49661055, "url": "https://news.ycombinator.com/item?id=49661055", "by": "Rendello", "date": "2026-09-11", "stance": "recommend", "quote": "Medium level: Regex (Rust crate) [2];", "excerpt": "I like burntsushi's string-searching work because it's well documented, split modularly into libraries/applications, and runs the gamut from low- to high-level (his blog posts and comments online are extremely helpful too). I use these three tools which he maintains: Low level: memchr [1]; Medium level: Regex (Rust crate) [2]; High level: ripgrep [3]. Other names to look out for are the previously aforementioned Wojc", "context": "", "use_case": "regex searching", "switched_from": "", "story": "Bitap: My favorite string matching algorithm"}, {"id": 760811760, "item_id": 47550735, "url": "https://news.ycombinator.com/item?id=47550735", "by": "kibwen", "date": "2026-03-27", "stance": "recommend", "quote": "design deliberately puts a reasonable upper bound on worst-case time complexity", "excerpt": "The title of this post is currently \"Brave Browser unable to block certain ads due to Rust language limitations\", which is ludicrous editorialization. Rust doesn't have regex in the language. Rust doesn't even have regex in the stdlib. The most popular crate for regex is https://crates.io/crates/regex , which is an engine whose design deliberately puts a reasonable upper bound on worst-case time complexity by deliber", "context": "", "use_case": "", "switched_from": "", "story": null}, {"id": 755081953, "item_id": 47192622, "url": "https://news.ycombinator.com/item?id=47192622", "by": "maxbond", "date": "2026-02-28", "stance": "recommend", "quote": "Two arbitrary picks:", "excerpt": "Two arbitrary picks: https://crates.io/crates/serde https://crates.io/crates/regex Anything covered by Gjengset's \"decrusted\" series: https://youtube.com/playlist?list=PLqbS7AVVErFirH9armw8yXlE6dacF-A6z Sort of on the border between toy and not-toy; Gjengset implements a concurrent hash map: https://youtube.com/playlist?list=PLqbS7AVVErFj824-6QgnK_Za1187rNfnl [17hr recorded over 3 streams]", "context": "", "use_case": "codebase to study", "switched_from": "", "story": "Rust Is Just a Tool"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["regex searching", "codebase to study", "regex engine in rust"], "compared": [{"slug": "serde", "name": "serde", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49609195", "title": "Bitap: My favorite string matching algorithm", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49374269", "title": "Malicious Rust Crate Arrayref Runs a Build-Time Payload", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47550684", "title": "item 47550684", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47190947", "title": "Rust Is Just a Tool", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46511470", "title": "C Is Best", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {"neutral": 1}, "2026-02": {"recommend": 1}, "2026-03": {"recommend": 1}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {"neutral": 1}, "2026-09": {"recommend": 1}, "2026-10": {}}, "quotes": [{"id": 794576881, "item_id": 49661055, "url": "https://news.ycombinator.com/item?id=49661055", "by": "Rendello", "date": "2026-09-11", "stance": "recommend", "quote": "Medium level: Regex (Rust crate) [2];", "excerpt": "I like burntsushi's string-searching work because it's well documented, split modularly into libraries/applications, and runs the gamut from low- to high-level (his blog posts and comments online are extremely helpful too). I use these three tools which he maintains: Low level: memchr [1]; Medium level: Regex (Rust crate) [2]; High level: ripgrep [3]. Other names to look out for are the previously aforementioned Wojc", "context": "", "use_case": "regex searching", "switched_from": "", "story": "Bitap: My favorite string matching algorithm"}, {"id": 790042145, "item_id": 49377634, "url": "https://news.ycombinator.com/item?id=49377634", "by": "bilkow", "date": "2026-08-20", "stance": "neutral", "quote": "regex: Owned by the rust-lang organization already.", "excerpt": "My personal opinion on each of those: JSON: there are a ton of different ways to do serialization and deserialization, each with their own tradeoffs, and serde (the most popular) is far from universally agreed upon. The same goes for JSON specifically, there are many different serialization formats with different tradeoffs. regex: Owned by the rust-lang organization already. You get the benefits of trust (if you trus", "context": "", "use_case": "", "switched_from": "", "story": "Malicious Rust Crate Arrayref Runs a Build-Time Payload"}, {"id": 760811760, "item_id": 47550735, "url": "https://news.ycombinator.com/item?id=47550735", "by": "kibwen", "date": "2026-03-27", "stance": "recommend", "quote": "design deliberately puts a reasonable upper bound on worst-case time complexity", "excerpt": "The title of this post is currently \"Brave Browser unable to block certain ads due to Rust language limitations\", which is ludicrous editorialization. Rust doesn't have regex in the language. Rust doesn't even have regex in the stdlib. The most popular crate for regex is https://crates.io/crates/regex , which is an engine whose design deliberately puts a reasonable upper bound on worst-case time complexity by deliber", "context": "", "use_case": "", "switched_from": "", "story": null}, {"id": 755081953, "item_id": 47192622, "url": "https://news.ycombinator.com/item?id=47192622", "by": "maxbond", "date": "2026-02-28", "stance": "recommend", "quote": "Two arbitrary picks:", "excerpt": "Two arbitrary picks: https://crates.io/crates/serde https://crates.io/crates/regex Anything covered by Gjengset's \"decrusted\" series: https://youtube.com/playlist?list=PLqbS7AVVErFirH9armw8yXlE6dacF-A6z Sort of on the border between toy and not-toy; Gjengset implements a concurrent hash map: https://youtube.com/playlist?list=PLqbS7AVVErFj824-6QgnK_Za1187rNfnl [17hr recorded over 3 streams]", "context": "", "use_case": "codebase to study", "switched_from": "", "story": "Rust Is Just a Tool"}, {"id": 744220688, "item_id": 46513793, "url": "https://news.ycombinator.com/item?id=46513793", "by": "burntsushi", "date": "2026-01-06", "stance": "neutral", "quote": "Go peruse the `regex` crate source code", "excerpt": "Not necessarily at all. Go peruse the `regex` crate source code, including its dependencies. The biggest `unsafe` sections are probably for SIMD accelerated search. There's no \"unnatural abstractions\" there. Just a memmem-like interface. There's some `unsafe` for eliding bounds checks in the main DFA search loops. No unnatural abstractions there either. There's also some `unsafe` for some synchronization primitives f", "context": "", "use_case": "Regex engine in Rust", "switched_from": "", "story": "C Is Best"}]}