Regular Expressions 101

Community Library

Community Library Entry

1

Regular ExpressionOpen Workspace

@"
\A(?>//[^\r\n]*|/\*[\s\S]*?\*/|\s+|[^\{\[]+)*|(?<json>(?:\{(?:(?>(?:""(?:\\.|[^""])*""|//[^\r\n]*|/\*[\s\S]*?\*/|[^{}\[\]""/]+|/(?![/*])))|(?<o>\{)|(?<-o>\})|(?<a>\[)|(?<-a>\]))*(?(o)(?!))(?(a)(?!))\}|\[(?:(?>(?:""(?:\\.|[^""])*""|//[^\r\n]*|/\*[\s\S]*?\*/|[^{}\[\]""/]+|/(?![/*])))|(?<o>\{)|(?<-o>\})|(?<a>\[)|(?<-a>\]))*(?(o)(?!))(?(a)(?!))\]))|(?>//[^\r\n]*|/\*[\s\S]*?\*/|\s+|.+)*\z
"
g

Description
Created·2026-08-01 17:48
Updated·2026-08-01 18:10
Type·Match
Flavor·.NET 7.0 (C#)

A .NET regular expression for extracting a single root-level JSON block from text.

Supports:

  • Root objects { ... }
  • Root arrays [ ... ]
  • Nested objects and arrays
  • Escaped quotes inside strings
  • Single-line comments // ...
  • Multi-line comments /* ... */

This regex performs structural matching only. It validates balanced braces/brackets and ignores delimiters inside strings and comments.

Features

  • Captures the JSON block in the json group.
  • Allows comments and whitespace before and after the JSON block.
  • Uses .NET balancing groups for nested structures.
  • Designed as a first parsing stage before actual JSON deserialization.

Limitations

This is not a full JSON parser.

It does not validate:

  • JSON syntax rules
  • Property names
  • Value types
  • Duplicate keys
  • Commas and separators

Use a real JSON parser after extracting the block.

Compatibility

Requires a regex engine with balancing group support:

  • ✅ .NET System.Text.RegularExpressions
  • ❌ JavaScript RegExp
  • ❌ Python re
  • ❌ RE2

Example

Input:

// config
{
    "name": "example",
    "items": [
        1,
        2
    ]
}

Results:

Groups["json"] -> { "name": "example", "items": [1, 2] }
Submitted by Pavel Bashkardin
Open Workspace