ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#技术栈入门到精通系列3A——正则表达式

2021-07-31 11:33:16  阅读:205  来源: 互联网

标签:字符 附录 匹配 C# 正则表达式 字符串 3A 限定符


阅读目录

1、介绍

2、正则表达式在C#中的使用

3、正则表达式的特殊字符

  3.1、常用字符介绍

  3.2、常用限定符

4、正则表达式中的替换

5、参考

6、附录

  6.1、附录1-正则字符
  6.2、附录2-转义字符
  6.3、附录3-断言字符
  6.4、附录4-限定符
  6.5、附录5-其他

返回系列文章目录 

 

1、介绍

  正则表达式提供了功能强大、灵活而又高效的方法来处理文本。 正则表达式丰富的泛模式匹配表示法使你可以快速分析大量文本,以便:①查找特定字符模式;②验证文本以确保它匹配预定义模式(如电子邮件地址);③提取、编辑、替换或删除文本子字符串;④将提取的字符串添加到集合中,以便生成报告。对于处理字符串或分析大文本块的许多应用程序而言,正则表达式是不可缺少的工具。

2、正则表达式在C#中的使用

  在C#中正则表达式就是实例化类System.Text.RegularExpressions.Regex,常用以下方法

2.1、public static bool IsMatch (string input, string pattern);  指示所指定的正则表达式在指定的输入字符串中是否找到了匹配项。

 参数:

input String:要搜索匹配项的字符串。

pattern String:要匹配的正则表达式模式。

返回:

Boolean:如果正则表达式找到匹配项,则为 true;否则为 false
2.2、public static System.Text.RegularExpressions.Match Match (string input, string pattern);  在指定的输入字符串中搜索指定的正则表达式的第一个匹配项。

参数:

input String:要搜索匹配项的字符串。
pattern String:要匹配的正则表达式模式。

返回:

Match:一个包含有关匹配的信息的对象。

 

2.3、public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern);  在指定的输入字符串中搜索指定的正则表达式的所有匹配项。

参数:

input String:要搜索匹配项的字符串。
pattern String:要匹配的正则表达式模式。

返回:

MatchCollection:搜索操作找到的 Match 对象的集合。 如果未找到匹配项,则此方法将返回一个空集合对象。

 

3、正则表达式字符串构造

3.1、常用字符介绍

  • .通配符:与除 \n 之外的任意单个字符匹配。正则字符串“a.e”,可以匹配"nave" 中的 "ave"、"water" 中的 "ate";如果要匹配“ca.e”中的“a.e”,则需要把正则字符串改为“a\.e”,“\”就是正则字符串中的转义字符。
  • []字符组:匹配中括号内字符组中的任何单个字符。 默认情况下,匹配区分大小写。例如正则字符串“a[xyz]b”,可以匹配"axb" 、“ayb”、“azb”。中括号内可以使用“-”表示范围,例如"[a-zA-Z0-9]",可以匹配所有的大小写字母和数字0-9。还需要注意链接符“-”,出现中括号的最前面,就表示“-”是普通字符不再是连接字符。
  • |字符:匹配以竖线 (|) 字符分隔的任何一个元素。 正则字符串“th(e|is|at)”,表示可以匹配“the”、“this”、“that”;正则字符串“t|cs1”,表示可以匹配“t”、“cs1”。

 

3.2、常用限定符

  • *限定符:匹配上一个元素零次或多次。例如“a*D”可以匹配“D”或则“aaD”、“aaaD”等,“\d*\.\d“匹配小数点后只有一位整数位要么没有,要么比1位多的数。再例如“(a.)*b”,这可以匹配“b”、“aca1b”等。
  • +限定符:匹配上一个元素一次或多次。例如"be+"可以匹配"been" 中的 "bee"、"bent" 中的 "be"。
  • ?限定符:匹配上一个元素零次或一次。例如"rai?n"可以匹配"ran", "rain"。
  • { n }限定符:匹配上一个元素恰好 n 次。例如",\d{3}"可以匹配"1,043.6" 中的 ",043"、可以匹配"9,876,543,210" 中的 ",876"、",543" 和 ",210"。
  • { n ,}限定符:匹配上一个元素至少 n 次。例如"\d{2,}"可以匹配"166", "29", "1930"。
  • { n , m }限定符:匹配上一个元素至少 n 次,但不多于 m 次。例如"\d{3,5}"可以匹配"166", "17668",也可以匹配"193024" 中的 "19302"。
  • ^字符:默认情况下,必须从字符串的开头开始匹配;在多行模式中,必须从该行的开头开始。例如“^\d{3}”,是以三个数字开头,"901-333-" 中的 "901"。
  • $字符:默认情况下,匹配必须出现在字符串的末尾,或在字符串末尾的 \n 之前;在多行模式中,必须出现在该行的末尾之前,或在该行末尾的 \n 之前。例如“-\d{3}$”,是以“-”加三个数字结尾,"-901-333" 中的 "-333"。
  • \b字符:匹配单词边界。例如“\bhello\b”,可以匹配“hello”,但是不能匹配“hello1”、也不能匹配“ hello”。

 

4、正则表达式中的替换

5、参考

  .NET 正则表达式  https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/regular-expressions

  正则表达式语言 - 快速参考  https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/regular-expression-language-quick-reference

 

6、附录

6.1、附录1-正则字符

 

6.2、附录2-转义字符

 

 

 

6.3、附录3-断言字符

 

6.4、附录4-限定符

 

6.5、附录5-其他

 

 

 

 

标签:字符,附录,匹配,C#,正则表达式,字符串,3A,限定符
来源: https://www.cnblogs.com/bigbox777/p/15058745.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有