文章目录
- 在VS的[查找和替换]窗口(Ctrl + F / Ctrl + H)中,勾选[使用正则表达式](Alt + E),即可使用下列模板: 模板类型 示例正则 用途 变量名替换 (w+)s*=s*null; 匹配所有 变量名 = null; 注释提取 `//s*(TODO FIXME):s*(.*)` HTML标签匹配 <(w+).*?>.*?</1> 匹配成对HTML标签
- 在WinForm或ASP.NET中,可通过System.Text.RegularExpressions.Regex类实现验证: using System.Text.RegularExpressions; //验证手机号 public bool IsValidPhone(string input) { return Regex.IsMatch(input,@”^1[3-9]d{9}$”); }
- 正则表达式:^1[3-9]d{9}$ 解释:以1开头,第二位为3-9,后接9位数字。 VS查找替换场景: 1.打开[查找和替换](Ctrl+H) 2.输入查找内容:(b1[3-9]d{9}b),替换为:**$1**(高亮手机号) C#代码验证: string phone = “13800138000”; bool isValid = Regex.IsMatch(phone,@”^1[3-9]d{9}$”); //返回true
- 正则表达式:^d{17}[dXx]$ 解释:17位数字 + 最后一位(数字或X/x) VS查找替换场景: 查找内容:(bd{17}[dXx]b),替换为:ID:$1(标记身份证号) C#代码验证: string idCard = “110101199001011234”; bool isValid = Regex.IsMatch(idCard,@”^d{17}[dXx]$”); //返回true
目录
- 一、核心概念与应用场景
- 二、模板及使用方法
- 1.查找 / 替换中的正则模板
- 2.代码中的正则表达式(C#示例)
- 三、VS正则的特点与注意事项
- 四、正则表达式常用元字符
- 五、预定义字符类元字符速查表
- 六、实战例子:手机号与身份证号的验证
- 1.手机号验证
- 2.身份证号验证(18位)
- 总结
介绍:正则表达式是Visual Studio中强大的文本处理工具,可用于代码查找 / 替换、文本验证和批量修改。
定义:通过模式匹配快速定位、提取或修改文本的工具。
VS中的核心场景:
1.代码重构(如批量替换变量名)
2.文本验证(如输入框手机号 / 身份证号校验)
3.日志分析(提取特定格式数据)
在VS的[查找和替换]窗口(Ctrl + F / Ctrl + H)中,勾选[使用正则表达式](Alt + E),即可使用下列模板:
| 模板类型 | 示例正则 | 用途 |
| 变量名替换 | (w+)s*=s*null; | 匹配所有 变量名 = null; |
| 注释提取 | `//s*(TODO | FIXME):s*(.*)` |
| HTML标签匹配 | <(w+).*?>.*?</1> | 匹配成对HTML标签 |
在WinForm或ASP.NET中,可通过System.Text.RegularExpressions.Regex类实现验证:
using System.Text.RegularExpressions;
//验证手机号
public bool IsValidPhone(string input)
{
return Regex.IsMatch(input,@"^1[3-9]d{9}$");
}
| 特点 | 注意事项 |
| 语法扩展 | 支持w(单词字符)、d(数字)等元字符,但需要注意转义(如需要写为\) |
| 分组捕获 | 使用()捕获分组,替换时使用$1 / $2引用(如$1表示第一个分组) |
| 多行模式 | 默认.不匹配换行符,需开启[多行模式]((?m))或使用r?n匹配换行 |
| 性能警告 | 复杂正则可能导致卡顿,建议测试后再批量替换 |
Visual Studio中使用.NET正则表达式,常用元字符如下:
1. 点号(.):匹配任何单个字符(换行符除外)。
2. 脱字符(^):匹配输入字符串的开始位置。如果设置了多行模式,也匹配“n”或“r”之后的位置。
3. 美元符($):匹配输入字符串的结束位置。如果设置了多行模式,也匹配“n”或“r”之前的位置。
4. 星号(*):匹配前面的子表达式零次或多次。
5. 加号(+):匹配前面的子表达式一次或多次。
6. 问号(?):匹配前面的子表达式零次或一次。
7. 花括号({n}、{n,}、{n,m}):{n}表示精确匹配n次;{n,}表示至少匹配n次;{n,m}表示匹配n到m次。
8. 圆括号(()):将括号之间的表达式定义为“组”,并且将匹配这个表达式的字符保存到一个临时区域,可以用1到9的符号来引用。
9. 竖线(|):将两个匹配条件进行逻辑“或”运算。
10. 反斜杠():将下一个字符标记为特殊字符、原义字符、向后引用或八进制转义符。例如,“n”匹配n,“n”匹配换行符,“”匹配“”。
11. 方括号([]):定义字符集合,匹配其中任意一个字符。例如,“[aeiou]”匹配任意一个元音字母。
12. 反方括号([^]):匹配不在方括号中的任意字符。例如,“[^0-9]”匹配任意非数字字符。
13. 连字符(-):在字符类中表示范围。例如,“[a-z]”匹配任意小写字母。
14. 单词边界(b):匹配单词边界。例如,“bcatb”匹配“cat”但不匹配“category”。
15. 非单词边界(B):匹配非单词边界。例如,“BcatB”匹配“scattered”中的“cat”但不匹配单独的“cat”。
| 元字符 | 功能描述 | 简单示例 | 匹配结果 |
| d | 匹配任意单个数字(等于[0-9]) | d{3} | 123、456 |
| D | 匹配任意带个非数字字符 | D | a、!、 (空格) |
| w | 匹配字母、数字、下划线 | w+ | hello、user_01 |
| W | 匹配非字母、非数字、非下划线 | W | @、#、+ |
|
s |
匹配任意空白字符(空白格、制表符、换行符等) | asb | a b、atb |
|
S |
匹配任意非空白字符 | S | x、5、* |
| b | 匹配单词边界 | bcatb | 独立单词cat,不匹配category里的cat |
| B | 匹配非单词边界 | BactB | 匹配scattered里的cat |
| t | 匹配制表符(Tab输入) | atb | a b(Tab分隔的a和b) |
| n | 匹配换行符 | anb | a换行后接b |
| r | 匹配回车符 | arb | 回车后切换位置的a和b |
正则表达式:^1[3-9]d{9}$
解释:以1开头,第二位为3-9,后接9位数字。
VS查找替换场景:
1.打开[查找和替换](Ctrl+H)
2.输入查找内容:(b1[3-9]d{9}b),替换为:**$1**(高亮手机号)
C#代码验证:
string phone = "13800138000";
bool isValid = Regex.IsMatch(phone,@"^1[3-9]d{9}$"); //返回true
正则表达式:^d{17}[dXx]$
解释:17位数字 + 最后一位(数字或X/x)
VS查找替换场景:
查找内容:(bd{17}[dXx]b),替换为:ID:$1(标记身份证号)
C#代码验证:
string idCard = "110101199001011234";
bool isValid = Regex.IsMatch(idCard,@"^d{17}[dXx]$"); //返回true
到此这篇关于Visual Studio中的正则表达式实战例子的文章就介绍到这了,更多相关Visual Studio正则表达式内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- VScode中使用正则表达式替换字符串的3个步骤分享
- VsCode中常用的一些正则表达式操作方法
- VSCode正则表达式匹配多行实战案例
- 如何在vscode中正确使用正则表达式进行文档内容的替换编辑
- VSCode如何巧用正则表达式快速处理字符段
- 详解可以用在VS Code中的正则表达式小技巧