Click here to Skip to main content
Licence 
First Posted 2 Feb 2006
Views 37,277
Bookmarked 19 times

Replace text using tagged expressions

By | 2 Feb 2006 | Article
An article on how to replace text using regular expressions, in the VS.NET IDE.

Introduction

Visual Studio has a very powerful search and replace feature, which is the "tagged expression". You can search and replace using regular expressions, keeping groups of content intact. This can be useful in stuff like refactoring or simply reformatting code.

The basics

A tagged expression is used to identify a piece of text so it can be used in the replacement. You identify a tagged expression with "{" and "}". You can use as many of those as you want.

If you enter the following in the replace dialog:

Find what:

{ content }

Replace with:

\1

You are replacing the group containing "content" with the same.

The following entry will replace the selection with the same:

Find what:

{.*}

Replace with:

\1

Just to be clear, a picture of the dialog:

So what?

OK, I admit, so far it doesn't look very useful. However, from this starting point, you can use any expression to split up text in parts and reassemble them.

Here's a hopefully more interesting example of what you can do:

Given below is an SQL connection string property value after dragging a data source in the designer:

workstation id=LEBOWSKI;packet size=4096;
   user id=sa;data source=LEBOWSKI;
   persist security info=True;
   initial catalog=TheInternet;password=protected

If I replace:

Find what:

{[^=]*}={[^;]*};

Replace with:

options.Add("\1", "\2");\n

You'll get the following:

options.Add("workstation id", "LEBOWSKI");
options.Add("packet size", "4096");
options.Add("user id", "sa");
options.Add("data source", "LEBOWSKI");
options.Add("persist security info", "True");
options.Add("initial catalog", "TheInternet");
options.Add("password", "protected");

Note: "[^=]" means any character except "=", and "*" means as many as there are.

Final words

This may not be a sample you will use yourself, but I hope to have shown you the power of what you can do. And hopefully you'll start using it yourself.

For an overview of the expression syntax, click on the Help button in the Replace dialog. Thanks for reading!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Michel.Smits



United States United States

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
Generalhi Pinmembermrmubi2:01 24 Feb '06  
GeneralRe: hi Pinmemberxyzzer23:13 2 Mar '06  
GeneralThanks and Regex comment Pinmemberlarbs5:20 15 Feb '06  
GeneralRe: Thanks and Regex comment Pinmembermsmits22:47 19 Feb '06  
GeneralI prefer macros Pinmemberxyzzer490:18 9 Feb '06  
GeneralRe: I prefer macros Pinmembermsmits1:56 9 Feb '06  
This is a good alternative for most situations... both methods do have their unique advantages.
As you say regular expressions do not have an easy to learn (or remember) syntax unless you use them regularly. Macros are easy and more known since they exist in any Office app.
 
I guess it comes down to preference, which basically covers your subject title Wink | ;-)
 
Thanks for your post.

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web01 | 2.5.120529.1 | Last Updated 2 Feb 2006
Article Copyright 2006 by Michel.Smits
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid