Back to Library
DevOps · Tier 2

Semantic Versioning

Matches SemVer 2.0.0 strings.

Answer Capsule

Semantic Versioning helps validate values with a production-oriented regex baseline. Use it for fast client or backend checks, then add semantic validation and engine-specific tests before release. This reduces false positives while keeping implementation predictable across environments.

Regex Block
^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$

Compatibility Badges

PCRE JavaScript Python Java

Token Explanation

Token-by-token with plain language, one sentence per token group.

  • `^` anchors matching at the start.
  • `$` anchors matching at the end.
  • `\d` targets digit characters.
  • `+` requires one or more repetitions.
  • `*` allows zero or more repetitions.
  • `?` enables optional or lazy behavior.
  • `|` adds alternation branches.

Edge Cases And Caveats

  • Very long input strings can impact performance if Semantic Versioning is used without anchors.
  • Unicode and locale edge cases should be tested in the exact runtime engine before rollout.
  • Always include rejected examples in tests to prevent false positives during refactors.

Test Cases

Input Expected
1.0.0 Pass
1.0.0-beta Pass
Fail
sample-value Fail
test@example.com Fail
1234567890 Pass

Engine Variants

PCRE

Reference implementation.

JavaScript

Re-test lookbehind, unicode, and flags.

Python

Prefer raw strings and explicit flags.

Java

Double-escape backslashes in string literals.

FAQ

When should I use the Semantic Versioning regex?

Use this when you need a quick format validation or extraction step before business-level checks.

Is this pattern cross-engine compatible?

Core behavior is designed for broad compatibility, but always re-test flags and advanced groups in your target engine.

What should I avoid with this pattern?

Avoid treating regex as the only safety check. Pair it with parser or domain-specific validation for production flows.

Related Links

Try it Live

Test and customize this pattern in our interactive editor

Test this pattern