Text Processingflags: g
Lazy / Non-Greedy Quantifier
Demonstrate lazy quantifiers `+?` by matching the SHORTEST HTML-like tag rather than the longest greedy span.
Try it in RegexPro →Available in
Pattern
regexengine-agnostic
<.+?> (flags: g)Raw source: <.+?>
How it works
<.+?> matches an opening `<`, then ONE OR MORE characters (`.+`), then the next `>`. The `?` after `+` makes the quantifier lazy — it stops at the first `>` it sees, instead of the greedy default that would consume everything up to the LAST `>` in the string.
Examples
Input
<b>bold</b> and <i>italic</i>Matches
<b></b><i></i>
Input
<div class="foo">x</div>Matches
<div class="foo"></div>
Input
no tagsNo match
—Common use cases
- •Pulling HTML/XML tags out of a stream
- •Stripping markup with String.replace
- •Demonstrating greedy-vs-lazy in tutorials
- •Quick parsers (use a real parser for prod)
Related patterns
Non-ASCII Character
Text ProcessingMatch runs of non-ASCII characters (anything outside U+0000–U+007F).
Non-Capturing Group (Image URL)
Text ProcessingUse non-capturing groups `(?:...)` to alternate without polluting the captured-groups list.
HCL / Terraform Variable Reference
Text ProcessingMatch Terraform / HCL references like `var.name`, `local.foo`, `module.x.output`, or `data.aws_ami.ubuntu.id`.
Keep-a-Changelog Entry Header
Text ProcessingMatch Keep-a-Changelog style version headers like `## [1.2.3] - 2024-01-15` or `## 2.0.0`.