简体   繁体   中英

Visual Studio, Find and replace, regex

I am trying to replace all the #include "whatever.h" with #include <whatever.h> using find and replace functionality in Visual Studio 2005. I used the regex \#include \"[az\.h]+\" to find the include statement. But I am wondering how frame the replace regex.

\#include \<[az\.h]+\> did not work and won't; it replaces the statement #include "whatever.h" with #include <[az.h]+> . How shall I frame the replace regex to retain whatever.h as it is?

For versions before Visual studio 2012:
It works when I do this:
find include "{[a-zA-Z]+\\.h}" ,
replace with include <\\1> .
The most relevant parts for your question are the curly braces {} and the back reference \\1 : \\n references to the n'th group indicated by curly braces in the search expression.

For versions Visual studio 2012 & up:
Starting with VS2012 .NET Framework regular expressions are used. So there it should be:
find include "([a-zA-Z]+\\.h)" ,
replace with include <$1> .

It's also possible with the short version:

简洁版本

https://regex101.com/r/vW7Rbh/1

You need to select both Match Case and Regular Expressions for regex expressions with case. Else [az] won't work.在此处输入图片说明

here is my use case I need to find all the html comments like this

<!--begin::Info-->
<!--End::Info-->

this is what I used

((<.--?+.-->)|('?+?'))

I hope it can be helpful for someone

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM