Visual Studio Code Regular Expression



The Visual Studio IDE supports searching and replacing with regular expressions, right? Sure it does. It's right there in grey and black in the find and replace dialog. Just tick the 'use Regular expressions' checkbox and we're off to the races.

  1. Visual Studio Code Regular Expression
  2. Visual Studio Code Regular Expression Replace Group
  3. Visual Studio Code Regular Expression Capture Group

However, you're in for an unpleasant surprise when you attempt to actually use regular expressions to find anything in Visual Studio. Apparently the Visual Studio IDE has its own bastardized regular expression syntax. Why? Who knows. Probably for arcane backwards compatibility reasons, although I have no idea why you'd want to perpetually carry forward insanity. Evidently it makes people billionaires, so who am I to judge.

God forbid we all learn one standard* regular expression dialect.

Open the Regular Expression Tester without selecting any text in the code editor. You will get an empty window, where you can start creating your regular expression with options. When you select 'Insert', a statement like new Regex(@'s.as.', RegexOptions.IgnoreCase RegexOptions.Compiled) is generated. Mbb motherboards driver. Select a string containing a regular expression including quotes - e.g. '(a.b)c' - and start the editor. Hello Friends, Regex Previewer is a very essential tool for a javascript developer who is writing complex regular expression and want to test it. This is a quick tutorial on using the Search and Replace feature in Visual Studio Code (VSCode) with regular expressions.The 'advanced' part of this is using.

Expression

At any rate, some of the Visual Studio IDE regular expressions look awfully similar to standard regex:

Visual Studio IDEStandard
Any single character..
Zero or more**
One or more++
Beginning of line^^
End of line$$
Beginning of word<(no equivalent)
End of word>(no equivalent)
Line breaknn
Any character in set[ ][ ]
Any character not in set[^ ][^ ]
Or||
Escape special char
Tag expression{ }( )
C/C++ identifier:i([a-zA-Z_$][a-zA-Z0-9_$]*)
Quoted string:q(('[^']*')|('[^']*'))
Space or Tab:b[ |t]
Integer:z[0-9]+

But they certainly don't act related when you try to use them. For example, try something simple, like finding '[A-Za-z]+'. That's all occurrences of more than one letter in a row. When I try this via the Visual Studio find dialog with the regex option checked, I get positively bizarre results. It finds a word made up of all letters, true, but as I click 'Find Next', it then finds each subsequent letter in the word. Again. What planet are these so-called 'regular expressions' from?

Visual Studio Code Regular Expression

The semi-abandoned Microsoft VSEditor blog has a three part tutorial (part one, part two, part three) on using the crazy Visual Studio dialect of Regex. There's a lot of emphasis on the strange < and > begin/end word match characters, which have no equivalent that I know of in the .NET and Perl dialect of regular expressions.

You might say that searching with regular expressions is such an extreme edge condition for most developers that it's not worth the Visual Studio development team's time. I won't disagree with you. It is rare, but it's hardly esoteric. Every developer should be able to grok the value of searching with the basic regular expressions that are a staple of their toolkit these days. Heck, some developers are so hard core they search through their code with Lisp expressions. Basic regex search functionality is awfully mild compared to that.

Visual Studio Code Regular Expression Replace Group

To be honest, searching with regular expressions isn't a common task for me either. But I'd be a lot more likely to use it if I didn't have to perform a lot of mental translation gymnastics on the occasions that I needed it. Don't make me think, man. But there is hope. There's a free add-in available which offers real regular expression searching in Visual Studio.

Visual Studio Code Regular Expression Capture Group

* well, mostly standard, anyway. Certainly JavaScript regex syntax could be considered standard these days.