{"id":1174,"date":"2023-07-17T09:00:00","date_gmt":"2023-07-17T09:00:00","guid":{"rendered":"https:\/\/www.naveedulhaq.com\/?p=1174"},"modified":"2023-07-12T22:34:07","modified_gmt":"2023-07-12T22:34:07","slug":"c-regex-pattern-matching-and-text-manipulation","status":"publish","type":"post","link":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/","title":{"rendered":"C# Regex: Pattern Matching and Text Manipulation"},"content":{"rendered":"\n<p>In <a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/csharp\/\" target=\"_blank\" rel=\"noreferrer noopener\">C#<\/a>, regular expressions (regex) provide a powerful and flexible way to perform pattern matching and text manipulation. Regex allows you to search, validate, and extract information from strings based on specific patterns. In this article, we\u2019ll explore the usage of regex in C#, its syntax, common patterns, and how to apply it effectively in your code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"understanding-regex\">Understanding Regex<\/h2>\n\n\n\n<p>A regular expression is a sequence of characters that defines a search pattern. It consists of literal characters and metacharacters that represent rules and conditions. In C#, you can use the&nbsp;<code>Regex<\/code>&nbsp;class from the&nbsp;<code>System.Text.RegularExpressions<\/code>&nbsp;namespace to work with regular expressions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"basic-regex-usage\">Basic Regex Usage<\/h2>\n\n\n\n<p>To use regex in C#, you typically follow these steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a regex pattern using the desired metacharacters and literals.<\/li>\n\n\n\n<li>Compile the pattern into a&nbsp;<code>Regex<\/code>&nbsp;object.<\/li>\n\n\n\n<li>Use the&nbsp;<code>Regex<\/code>&nbsp;object to perform operations such as searching, matching, replacing, or extracting.<\/li>\n<\/ol>\n\n\n\n<p>Here\u2019s an example that demonstrates a basic usage of regex in C#:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using System;\nusing System.Text.RegularExpressions;\n\npublic class RegexExample\n{\n    public static void Main()\n    {\n        string text = \"Hello, my email address is example@example.com.\";\n\n        \/\/ Define a regex pattern to match email addresses\n        string pattern = @\"\\b&#091;A-Za-z0-9._%+-]+@&#091;A-Za-z0-9.-]+\\.&#091;A-Za-z]{2,}\\b\";\n\n        \/\/ Compile the regex pattern\n        Regex regex = new Regex(pattern);\n\n        \/\/ Find matches in the text\n        MatchCollection matches = regex.Matches(text);\n\n        \/\/ Print all matches\n        foreach (Match match in matches)\n        {\n            Console.WriteLine(match.Value);\n        }\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>In this example, we define a regex pattern to match email addresses. We then compile the pattern into a&nbsp;<code>Regex<\/code>&nbsp;object and use it to find matches in the given text. The matches are stored in a&nbsp;<code>MatchCollection<\/code>, and we iterate over the matches to print them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"common-regex-patterns\">Common Regex Patterns<\/h2>\n\n\n\n<p>Regex patterns can vary depending on your specific needs, but here are some common patterns and metacharacters:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>.<\/code>: Matches any character except a newline.<\/li>\n\n\n\n<li><code>*<\/code>: Matches zero or more occurrences of the preceding element.<\/li>\n\n\n\n<li><code>+<\/code>: Matches one or more occurrences of the preceding element.<\/li>\n\n\n\n<li><code>?<\/code>: Matches zero or one occurrence of the preceding element.<\/li>\n\n\n\n<li><code>[]<\/code>: Defines a character class, matching any single character within the brackets.<\/li>\n\n\n\n<li><code>^<\/code>: Matches the start of a line or string.<\/li>\n\n\n\n<li><code>$<\/code>: Matches the end of a line or string.<\/li>\n\n\n\n<li><code>\\b<\/code>: Matches a word boundary.<\/li>\n<\/ul>\n\n\n\n<p>These are just a few examples of the many metacharacters and patterns available in regex. Consult the documentation or online resources for a comprehensive list.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"regex-methods-and-operations\">Regex Methods and Operations<\/h2>\n\n\n\n<p>The&nbsp;<code>Regex<\/code>&nbsp;class in C# provides various methods for regex operations, including:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Match<\/code>: Searches for the first occurrence of the pattern in the input string.<\/li>\n\n\n\n<li><code>Matches<\/code>: Searches for all occurrences of the pattern in the input string.<\/li>\n\n\n\n<li><code>Replace<\/code>: Replaces matched patterns in the input string with a specified replacement string.<\/li>\n\n\n\n<li><code>Split<\/code>: Splits the input string into an array of substrings based on the pattern.<\/li>\n<\/ul>\n\n\n\n<p>These methods offer flexibility and allow you to perform a wide range of regex operations for text manipulation and processing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusion<\/h2>\n\n\n\n<p>C# regex provides a powerful tool for pattern matching and text manipulation. By understanding regex syntax, common patterns, and utilizing the\u00a0<code>Regex<\/code>\u00a0class, you can effectively search, validate, and manipulate strings in your C# code. Regex enables you to perform complex matching operations and extract meaningful information from text, enhancing the functionality and versatility of your applications.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.naveedulhaq.com\/index.php\/category\/dot-net-core\/\" target=\"_blank\" rel=\"noreferrer noopener\">Click Here to read more C# \/ ASP .NET tutorials.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C#, regular expressions (regex) provide a powerful and flexible way to perform pattern matching and text manipulation. Regex allows you to search, validate, and&#8230;<\/p>\n","protected":false},"author":3,"featured_media":641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[11,8,62,37,32],"class_list":["post-1174","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dot-net-core","tag-dot-net-core","tag-dot-net-framework","tag-asp-net","tag-c","tag-developer"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>C# Regex: Pattern Matching and Text Manipulation - Naveed Ul-Haq&#039;s blog<\/title>\n<meta name=\"description\" content=\"In C#, regular expressions (regex) provide a powerful and flexible way to perform pattern matching and text manipulation\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# Regex: Pattern Matching and Text Manipulation - Naveed Ul-Haq&#039;s blog\" \/>\n<meta property=\"og:description\" content=\"In C#, regular expressions (regex) provide a powerful and flexible way to perform pattern matching and text manipulation\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/\" \/>\n<meta property=\"og:site_name\" content=\"Naveed Ul-Haq&#039;s blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-17T09:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/11\/240px-.NET_Logo.svg_.png\" \/>\n\t<meta property=\"og:image:width\" content=\"240\" \/>\n\t<meta property=\"og:image:height\" content=\"240\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Abdul Mannan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Abdul Mannan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/\"},\"author\":{\"name\":\"Abdul Mannan\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/8babf3cd198e47e5c727f67880ea7977\"},\"headline\":\"C# Regex: Pattern Matching and Text Manipulation\",\"datePublished\":\"2023-07-17T09:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/\"},\"wordCount\":478,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/240px-.NET_Logo.svg_.png\",\"keywords\":[\".net core\",\".net framework\",\"asp.net\",\"c#\",\"developer\"],\"articleSection\":[\".NET\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/\",\"name\":\"C# Regex: Pattern Matching and Text Manipulation - Naveed Ul-Haq&#039;s blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/240px-.NET_Logo.svg_.png\",\"datePublished\":\"2023-07-17T09:00:00+00:00\",\"description\":\"In C#, regular expressions (regex) provide a powerful and flexible way to perform pattern matching and text manipulation\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/240px-.NET_Logo.svg_.png\",\"contentUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/240px-.NET_Logo.svg_.png\",\"width\":240,\"height\":240,\"caption\":\".net\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/dot-net-core\\\/c-regex-pattern-matching-and-text-manipulation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.naveedulhaq.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Regex: Pattern Matching and Text Manipulation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#website\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/\",\"name\":\"Naveed Ul-Haq's blog\",\"description\":\"AI, Optimizely, Azure &amp; more\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.naveedulhaq.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\",\"name\":\"Naveed Ul-Haq\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\",\"caption\":\"Naveed Ul-Haq\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\"},\"description\":\"I lead engineering delivery teams for digital commerce and digital experience platforms, combining hands-on architecture experience with strong delivery governance. Over 20+ years, I\u2019ve built and led cross\u2011functional teams (engineering, BA, QA) delivering modern cloud solutions on Azure, microservices, APIs and eCommerce\\\/CMS platforms. My recent focus includes AI-enabled commerce automation: product ingestion and enrichment workflows, content optimisation for SEO and shopping feeds, and agentic tooling to improve marketing and accessibility workflows. I\u2019m passionate about building high-performing teams, establishing quality\\\/release standards, and delivering measurable outcomes across performance, reliability, and speed of change.\",\"sameAs\":[\"https:\\\/\\\/www.naveedulhaq.com\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/naveedulhaq\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/8babf3cd198e47e5c727f67880ea7977\",\"name\":\"Abdul Mannan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7021bf97f2da3c29882f0e194e341d6abcc2b18abbbbf1e8ea688017b2323d21?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7021bf97f2da3c29882f0e194e341d6abcc2b18abbbbf1e8ea688017b2323d21?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7021bf97f2da3c29882f0e194e341d6abcc2b18abbbbf1e8ea688017b2323d21?s=96&d=mm&r=g\",\"caption\":\"Abdul Mannan\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C# Regex: Pattern Matching and Text Manipulation - Naveed Ul-Haq&#039;s blog","description":"In C#, regular expressions (regex) provide a powerful and flexible way to perform pattern matching and text manipulation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/","og_locale":"en_GB","og_type":"article","og_title":"C# Regex: Pattern Matching and Text Manipulation - Naveed Ul-Haq&#039;s blog","og_description":"In C#, regular expressions (regex) provide a powerful and flexible way to perform pattern matching and text manipulation","og_url":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/","og_site_name":"Naveed Ul-Haq&#039;s blog","article_published_time":"2023-07-17T09:00:00+00:00","og_image":[{"width":240,"height":240,"url":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/11\/240px-.NET_Logo.svg_.png","type":"image\/png"}],"author":"Abdul Mannan","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Abdul Mannan","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/#article","isPartOf":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/"},"author":{"name":"Abdul Mannan","@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/8babf3cd198e47e5c727f67880ea7977"},"headline":"C# Regex: Pattern Matching and Text Manipulation","datePublished":"2023-07-17T09:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/"},"wordCount":478,"commentCount":0,"publisher":{"@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"image":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/11\/240px-.NET_Logo.svg_.png","keywords":[".net core",".net framework","asp.net","c#","developer"],"articleSection":[".NET"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/","url":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/","name":"C# Regex: Pattern Matching and Text Manipulation - Naveed Ul-Haq&#039;s blog","isPartOf":{"@id":"https:\/\/www.naveedulhaq.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/#primaryimage"},"image":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/11\/240px-.NET_Logo.svg_.png","datePublished":"2023-07-17T09:00:00+00:00","description":"In C#, regular expressions (regex) provide a powerful and flexible way to perform pattern matching and text manipulation","breadcrumb":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/#primaryimage","url":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/11\/240px-.NET_Logo.svg_.png","contentUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/11\/240px-.NET_Logo.svg_.png","width":240,"height":240,"caption":".net"},{"@type":"BreadcrumbList","@id":"https:\/\/www.naveedulhaq.com\/index.php\/dot-net-core\/c-regex-pattern-matching-and-text-manipulation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.naveedulhaq.com\/"},{"@type":"ListItem","position":2,"name":"C# Regex: Pattern Matching and Text Manipulation"}]},{"@type":"WebSite","@id":"https:\/\/www.naveedulhaq.com\/#website","url":"https:\/\/www.naveedulhaq.com\/","name":"Naveed Ul-Haq's blog","description":"AI, Optimizely, Azure &amp; more","publisher":{"@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.naveedulhaq.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9","name":"Naveed Ul-Haq","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g","caption":"Naveed Ul-Haq"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g"},"description":"I lead engineering delivery teams for digital commerce and digital experience platforms, combining hands-on architecture experience with strong delivery governance. Over 20+ years, I\u2019ve built and led cross\u2011functional teams (engineering, BA, QA) delivering modern cloud solutions on Azure, microservices, APIs and eCommerce\/CMS platforms. My recent focus includes AI-enabled commerce automation: product ingestion and enrichment workflows, content optimisation for SEO and shopping feeds, and agentic tooling to improve marketing and accessibility workflows. I\u2019m passionate about building high-performing teams, establishing quality\/release standards, and delivering measurable outcomes across performance, reliability, and speed of change.","sameAs":["https:\/\/www.naveedulhaq.com","https:\/\/www.linkedin.com\/in\/naveedulhaq\/"]},{"@type":"Person","@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/8babf3cd198e47e5c727f67880ea7977","name":"Abdul Mannan","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/7021bf97f2da3c29882f0e194e341d6abcc2b18abbbbf1e8ea688017b2323d21?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7021bf97f2da3c29882f0e194e341d6abcc2b18abbbbf1e8ea688017b2323d21?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7021bf97f2da3c29882f0e194e341d6abcc2b18abbbbf1e8ea688017b2323d21?s=96&d=mm&r=g","caption":"Abdul Mannan"}}]}},"_links":{"self":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/posts\/1174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/comments?post=1174"}],"version-history":[{"count":0,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/posts\/1174\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/media\/641"}],"wp:attachment":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/media?parent=1174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/categories?post=1174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/tags?post=1174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}