.NET中正则表达式的语法用例

简介: 字符匹配语法:  字符语法语法解释语法例子\d匹配数字(0~9)‘\d’匹配8,不匹配12;\D匹配非数字‘\D’匹配c,不匹配3;\w匹配任意单字符‘\w\w’ 匹配A3,不匹配@3;\W匹配非单...

字符匹配语法:
 

 

字符语法 语法解释 语法例子
\d 匹配数字(0~9) ‘\d’匹配8,不匹配12;
\D 匹配非数字 ‘\D’匹配c,不匹配3;
\w 匹配任意单字符 ‘\w\w’ 匹配A3,不匹配@3;
\W 匹配非单字符 ‘\W’匹配@,不匹配c;
\s 匹配空白字符 ‘\d\s\d’匹配3 d,不匹配abc;
\S 匹配非空字符 ‘\S\S\S’匹配A#4,不匹配3 d;
. 匹配任意字符 ‘....’匹配A$ 5,不匹配换行;
[…] 匹配括号中任意字符 [b-d]匹配b、c、d, 不匹配e;
[^…] 匹配非括号字符 [^b-z]匹配a,不匹配b-z的字符;


 

     重复匹配语法:


 

重复语法 语法解释 语法例子
{n} 匹配n次字符 \d{3}匹配\d\d\d,不匹配\d\d或\d\d\d\d
{n,} 匹配n次和n次以上 \w{2}匹配\w\w和\w\w\w以上,不匹配\w
{n,m} 匹配n次上m次下 \s{1,3}匹配\s,\s\s,\s\s\s,不匹配\s\s\s\s
? 匹配0或1次 5?匹配5或0,不匹配非5和0
+ 匹配一次或多次 \S+匹配一个以上\S,不匹配非一个以上\S
* 匹配0次以上 \W*匹配0以上\W,不匹配非N*\W

 

     字符定位语法:


 

重复语法 语法解释 语法例子
^ 定位后面模式开始位置  
$ 前面模式位于字符串末端  
\A 前面模式开始位置  
\z 前面模式结束位置  
\Z 前面模式结束位置(换行前)  
\b 匹配一个单词边界  
\B 匹配一个非单词边界  

 

    转义匹配语法:


 

转义语法 涉及字符(语法解释) 语法例子
“\”+实际字符 \ . * + ? | ( ) { }^ $ 例如:\\匹配字符“\”
\n 匹配换行  
\r 匹配回车  
\t 匹配水平制表符  
\v 匹配垂直制表符  
\f 匹配换页  
\nnn 匹配一个8进制ASCII  
\xnn 匹配一个16进制ASCII  
\unnnn 匹配4个16进制的Uniode  
\c+大写字母 匹配Ctrl-大写字母 例如:\cS-匹配Ctrl+S

 

 

示例:

读取文件内容和分析,文件格式如下:



string[] lines = File.ReadAllLines(Server.MapPath("type.txt"), Encoding.UTF8);
            Regex myregex = new Regex(@"'([\w\W]+)'[\w\W]+'([\w\W]+)'[\w\W]+");
            Match match;
            foreach (string line in lines)
            {
                //Response.Write(line + "<br/>");
                match = myregex.Match(line);
                if (match.Success)
                {
                    Response.Write("case \"." +match.Groups[1].Value + "\":<br/>");//匹配的第1个值
                    Response.Write("ContentType = \"" +match.Groups[2].Value + "\";<br/>break;<br/>");//匹配的第2个值

                }
            }

 

运行的结果: 



所以说,正则表达式是很强大的,尤其是在批量格式化的时候很方便使用!!



附:

替换html代码中的关键词,但不能是img a标签中的内容:

html=Regex.Replace(html,@"(?<!(<img[^>]*?)|<a\b[^>]*?>[^<>]*?)(设计|技能)","<a href=\"http://www.test.com\">$2</a>");


重复匹配需要的内容:


  var txt="[CQ:image,file=A7D637E6F29F199D7D2ADDEB2A1D21B4.png][CQ:image,file=A7D637E6F29F199D7D2ADDEB2A1D21B5.png]adad";
  Regex reg=new Regex(@"\[CQ:image,file=(?<filename>[^\s\r\n\]]+)\]", RegexOptions.IgnoreCase);
  MatchCollection matches = reg.Matches(txt);
 if(matches.Count>0){
 matches.Count.Dump();
 foreach (Match match in matches)
 {
 match.Groups["filename"].Value.Dump();
 }
 }
else "匹配失败".Dump();





更多正则表达式参考:http://blog.csdn.net/dl020840504/article/details/8880603

相关文章
|
8月前
|
机器学习/深度学习 存储 JavaScript
正则表达式基础语法与Java、JS使用实例
正则表达式基础语法与Java、JS使用实例
115 1
|
8月前
【易懂讲解】VB.NET 基础语法,让你快速掌握
【易懂讲解】VB.NET 基础语法,让你快速掌握
119 0
|
7月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
7月前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
|
8月前
|
开发框架 安全 .NET
C# .NET面试系列一:基础语法
<h2>基础语法 #### 1. 字符串中 string str = null 和 string str = "" 和 string str = string.Empty 的区别? string str=null: ```c# 这表示字符串变量str被初始化为null,即它不引用任何对象。这与空字符串是不同的,因为空字符串是一个具有零长度的字符串对象,不会分配内存空间 ``` string.Empty: ```c# 这表示字符串变量str被初始化为空字符串,即一个具有零长度的字符串对象。这与null是不同的,因为str引用了一个空字符串对象 ``` string str="" :
136 1
|
存储 索引 Python
【100天精通python】Day23:正则表达式,基本语法与re模块详解示例
【100天精通python】Day23:正则表达式,基本语法与re模块详解示例
125 0
|
8月前
正则表达式语法讲解
正则表达式语法讲解
67 0
|
8月前
|
程序员 数据库
VB.NET—Bug调试(参数话查询、附近语法错误)
VB.NET—Bug调试(参数话查询、附近语法错误)
76 0
|
开发框架 前端开发 .NET
ASP.NET Core MVC 从入门到精通之Razor语法
ASP.NET Core MVC 从入门到精通之Razor语法
193 0
Python正则表达式语法快速入门
正则表达式需要与相关函数共同使用,对函数的学习可以参考: Python正则表达式所有函数详解