{"id":824,"date":"2020-11-21T10:47:38","date_gmt":"2020-11-21T16:47:38","guid":{"rendered":"http:\/\/ninmonkeys.com\/blog\/?p=824"},"modified":"2020-11-21T10:47:38","modified_gmt":"2020-11-21T16:47:38","slug":"using-case-sensitive-regular-expressions-in-powershell-tips","status":"publish","type":"post","link":"https:\/\/ninmonkeys.com\/blog\/2020\/11\/21\/using-case-sensitive-regular-expressions-in-powershell-tips\/","title":{"rendered":"Using Case-Sensitive Regular expressions in PowerShell &#8211; Tips"},"content":{"rendered":"\n\n\n<p>Say you want to find functions that uses parameters named like:<br><strong><code class=\"\" data-line=\"\">-AsString<\/code>, <code class=\"\" data-line=\"\">-AsHashTable<\/code>, <\/strong>or<strong> <code class=\"\" data-line=\"\">-AsByteStream<\/code><\/strong><br><br><a href=\"https:\/\/github.com\/SeeminglyScience\/ClassExplorer\/blob\/master\/docs\/en-US\/Find-Member.md\">Using Find-Member makes it easy<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" src=\"https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/11\/image-16.png\" alt=\"\" class=\"wp-image-831\" width=\"685\" height=\"369\" srcset=\"https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/11\/image-16.png 685w, https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/11\/image-16-300x162.png 300w\" sizes=\"(max-width: 685px) 100vw, 685px\" \/><figcaption>> <code class=\"\" data-line=\"\">Find-Member -Name &#039;As*&#039;<\/code><\/figcaption><\/figure>\n\n\n\n<p>That&#8217;s close, but I want it to start with a capital letter, to skip matches like:<br><code class=\"\" data-line=\"\">Assembly<\/code> or <code class=\"\" data-line=\"\">Asin<\/code> <\/p>\n\n\n\n<h2>Converting Like to a Regex<\/h2>\n\n\n\n<p>The <code class=\"\" data-line=\"\">-like<\/code> pattern <code class=\"\" data-line=\"\">As*<\/code> is the same as the regex <code class=\"\" data-line=\"\">^As<\/code> <br>To start with a capital letter you could use: <code class=\"\" data-line=\"\">^As[A-Z]<\/code><br><br><\/p>\n\n\n\n<h2>Disabling Case-Sensitive matches<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Because <strong>PowerShell defaults <\/strong>to <strong>case-insensitive<\/strong> matches<br>You need to remove the <code class=\"\" data-line=\"\">i<\/code> <strong>insensitive<\/strong> flag using the syntax <code class=\"\" data-line=\"\">(?-i)<\/code><\/p>\n\n\n\n<h2>Solution<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" src=\"https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/11\/image-14.png\" alt=\"\" class=\"wp-image-827\" width=\"725\" height=\"213\" srcset=\"https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/11\/image-14.png 725w, https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/11\/image-14-300x88.png 300w\" sizes=\"(max-width: 725px) 100vw, 725px\" \/><figcaption>> <code class=\"\" data-line=\"\">Find-Member -Name &#039;(?-i)^As[A-Z]&#039; -RegularExpression<\/code><\/figcaption><\/figure>\n\n\n\n<p>The final pattern is <code class=\"\" data-line=\"\">(?-i)^As[A-Z]<\/code><br>Making it <strong>case-sensitive <\/strong>narrowed down the matches from <strong>113 to 43<\/strong> !<\/p>\n\n\n\n<h2>See More<\/h2>\n\n\n\n<ul><li><a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/standard\/base-types\/regular-expression-language-quick-reference\">Regular Expression reference for .Net <\/a> <\/li><li>get <a href=\"https:\/\/github.com\/SeeminglyScience\/ClassExplorer\"><code class=\"\" data-line=\"\">Find-Member<\/code> from <code class=\"\" data-line=\"\">ClassExplorer<\/code><\/a><\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Searching for Parameters using case-insensitive regular expressions<\/p>\n","protected":false},"author":1,"featured_media":827,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[18,40,20],"tags":[],"_links":{"self":[{"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/posts\/824"}],"collection":[{"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/comments?post=824"}],"version-history":[{"count":27,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/posts\/824\/revisions"}],"predecessor-version":[{"id":855,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/posts\/824\/revisions\/855"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/media\/827"}],"wp:attachment":[{"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/media?parent=824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/categories?post=824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/tags?post=824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}