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 tags

No 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)