using System.Collections;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
public static void Test()
var o = JToken.Parse(json);
JToken acme = o.SelectToken("$.Manufacturers[?(@.Name =~ /Acme/)]");
Assert.That(acme != null);
Assert.AreEqual("{\"Name\":\"Acme Co\"}", acme?.ToString(Formatting.None));
Console.WriteLine(acme?.ToString(Formatting.None));
var o = JToken.Parse(json);
JToken acme = o.SelectToken("$.Manufacturers[?(@.Name =~ /\\bAcme\\b/)]");
Assert.That(acme != null);
Assert.AreEqual("{\"Name\":\"Acme Co\"}", acme?.ToString(Formatting.None));
Console.WriteLine(acme?.ToString(Formatting.None));
var o = JToken.Parse(json);
JToken acme = o.SelectToken("$.Manufacturers[?(@.Name =~ /(?i)acme/)]");
Assert.That(acme != null);
Assert.AreEqual("{\"Name\":\"ACME Co\"}", acme?.ToString(Formatting.None));
Console.WriteLine(acme?.ToString(Formatting.None));
{"Name" : "Notme Co\r\nAcme"},
var o = JToken.Parse(json);
var acme = o.SelectToken("$.Manufacturers[?(@.Name =~ /^(?!.*Acme).*$/)]");
Console.WriteLine(JsonConvert.SerializeObject(acme,Formatting.None));
Assert.That(acme != null);
Assert.AreEqual("{\"Name\":\"Notme Co\"}", JsonConvert.SerializeObject(acme,Formatting.None));
{"Name" : "Acme At The Beginning"},
{"Name" : "Not Acme Co"},
var o = JToken.Parse(json);
JToken acme = o.SelectToken("$.Manufacturers[?(@.Name =~ /^Acme/)]");
Assert.That(acme != null);
Assert.AreEqual("{\"Name\":\"Acme At The Beginning\"}", acme?.ToString(Formatting.None));
Console.WriteLine(acme?.ToString(Formatting.None));
{"Name" : "Ends With Acme"},
var o = JToken.Parse(json);
JToken acme = o.SelectToken("$.Manufacturers[?(@.Name =~ /Acme$/)]");
Assert.That(acme != null);
Assert.AreEqual("{\"Name\":\"Ends With Acme\"}", acme?.ToString(Formatting.None));
Console.WriteLine(acme?.ToString(Formatting.None));
{"Name" : "Ends With Acme"},
var o = JToken.Parse(json);
JToken acme = o.SelectToken("$.Manufacturers[?(@.Name =~ /(?s)^.{7}$/)]");
Console.WriteLine(acme?.ToString(Formatting.None));
Assert.That(acme != null);
Assert.AreEqual("{\"Name\":\"7\\nchars\"}", acme?.ToString(Formatting.None));
public static void Main()
Console.WriteLine("Environment version: {0} ({1}), {2}", System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription , Environment.Version, Environment.OSVersion);
Console.WriteLine("{0} version: {1}", typeof(JsonSerializer).Namespace, typeof(JsonSerializer).Assembly.FullName);
Console.WriteLine("Failed with unhandled exception: ");