用于正则表达式的 Regex.Matches静态方法的几种用法:

    //①正则表达式 = > 匹配字符串
string Text = @"This is a book , this is my book , Is not IIS"; //定义一个模式字符串,不仅仅是纯文本,还可以是正则表达式
string Pattern = "is"; MatchCollection Matches = Regex.Matches(
Text,
Pattern,
RegexOptions.IgnoreCase | //忽略大小写
RegexOptions.ExplicitCapture | //提高检索效率
RegexOptions.RightToLeft //从左向右匹配字符串
); Console.WriteLine("从右向左匹配字符串:"); foreach (Match NextMatch in Matches)
{
Console.Write("匹配的位置:{0,2} ", NextMatch.Index);
Console.Write("匹配的内容:{0,2} ", NextMatch.Value);
Console.Write("/n");
} Console.WriteLine(); //②匹配以大写I开头
//“/b”是转义序列,代表开头和结尾(一个字的边界,忽略空白或标点)
Pattern = @"/bI";
Matches = Regex.Matches(
Text,
Pattern,
RegexOptions.ExplicitCapture //提高检索效率
); Console.WriteLine("从左向右匹配字符串:"); foreach (Match NextMatch in Matches)
{
Console.Write("匹配的位置:{0} ", NextMatch.Index);
Console.Write("匹配的内容:{0} ", NextMatch.Value);
Console.Write("/n");
} Console.WriteLine(); //③匹配以大写I开头,大写S结尾的字符串
//“/b”是转义序列,代表开头和结尾(一个字的边界,忽略空白或标点)
///S*匹配任何不是空白的字符
Pattern = @"/bI/S*S/b";
Matches = Regex.Matches(
Text,
Pattern,
RegexOptions.ExplicitCapture //提高检索效率
); Console.WriteLine("从左向右匹配字符串:"); foreach (Match NextMatch in Matches)
{
Console.Write("匹配的位置:{0} ", NextMatch.Index);
Console.Write("匹配的内容:{0} ", NextMatch.Value);
Console.Write("/n");
} Console.WriteLine(); //④匹配his 或者iis,其中忽略大小写
Pattern = @"[h|i]is";
Matches = Regex.Matches(
Text,
Pattern,
RegexOptions.IgnoreCase | //忽略大小写
RegexOptions.ExplicitCapture //提高检索效率
); Console.WriteLine("从左向右匹配字符串:"); foreach (Match NextMatch in Matches)
{
Console.Write("匹配的位置:{0} ", NextMatch.Index);
Console.Write("匹配的内容:{0} ", NextMatch.Value);
Console.Write("/n");
} Console.WriteLine(); //⑤对Url的分组匹配
Text = "http://192.168.0.1:2008";
Pattern = @"/b(/S+)://(/S+)(?::(/S+))/b";
Matches = Regex.Matches(Text, Pattern); Console.WriteLine("从左向右匹配字符串:"); foreach (Match NextMatch in Matches)
{
Console.Write("匹配的位置:{0} ", NextMatch.Index);
Console.Write("匹配的内容:{0} ", NextMatch.Value);
Console.Write("/n"); for (int i = ; i < NextMatch.Groups.Count; i++)
{
Console.Write("匹配的组 {0}:{1,4} ", i + , NextMatch.Groups[i].Value);
Console.Write("/n");
}
} Console.Read();

输出结果为:

①从右向左匹配字符串:
匹配的位置: 匹配的内容:IS
匹配的位置: 匹配的内容:Is
匹配的位置: 匹配的内容:is
匹配的位置: 匹配的内容:is
匹配的位置: 匹配的内容:is
匹配的位置: 匹配的内容:is ②从左向右匹配字符串:
匹配的位置: 匹配的内容:I
匹配的位置: 匹配的内容:I ③从左向右匹配字符串:
匹配的位置: 匹配的内容:IIS ④从左向右匹配字符串:
匹配的位置: 匹配的内容:his
匹配的位置: 匹配的内容:his
匹配的位置: 匹配的内容:IIS ⑤从左向右匹配字符串:
匹配的位置: 匹配的内容:http://192.168.0.1:2008
匹配的组 :http://192.168.0.1:2008
匹配的组 :http
匹配的组 :192.168.0.1
匹配的组 :

---上善若水,随遇而安。
老子

C# 中使用正则表达式 Regex.Matches方法的几个应用[转]的更多相关文章

  1. (译)JavaScript 中的正则表达式(RegEx)实操——快速掌握正则表达式,伴有随手可练的例子————(翻译未完待续)

    (原文:https://blog.bitsrc.io/a-beginners-guide-to-regular-expressions-regex-in-javascript-9c58feb27eb4 ...

  2. Python中re(正则表达式)模块使用方法

    Python中常用的正则表达式处理函数: re.match re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词. import re text = "JGood ...

  3. 在C#中使用正则表达式最简单的方式

    更新记录 本文迁移自Panda666原博客,原发布时间:2021年5月11日. 在.NET中使用正则表达式与其他语言并无太大差异.最简单的使用就是使用Regex类型自带的静态方法. 注意:在.NET中 ...

  4. 正则表达式中Pattern类、Matcher类和matches()方法简析

    1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.  它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一 ...

  5. .net正则表达式大全(.net 的 System.Text.RegularExpressions.Regex.Match()方法使用)

    正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET的System.dll类库提供的System.Text.RegularExpression ...

  6. Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量,不具有任何匹配功能

    Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量,不具有任何匹配功能. 下面是个例子: import org.junit.Test; import java. ...

  7. ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证

    ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...

  8. Java正则表达式之Matcher类的find和matches方法的区别

    讨论整个问题之前,先看个例子:   从上面的例子可以看出 matches()是整个字符串完全匹配时,才会返回true 而find()则只需要字符串中,找到某部分的子字符串匹配则返回true       ...

  9. 正则表达式中的exec和match方法的区别

    正则表达式中的exec和match方法的区别 字符串的正则方法有:match().replace().search().split() 正则对象的方法有:exec().test() 1.match m ...

随机推荐

  1. UML期末复习题——2.3:UML State Diagram

    第三题  状态图 重要概念: 1.定义:事件.状态和转换: 事件:指一件值得注意的事情的发生. 状态:指对象在事件发生之间某时刻所处的情形. 转换:两个状态之间的关系.它表明当某事件发生时,对象从先前 ...

  2. Python 标准库之 fcntl

    在 linux 环境下用 Python 进行项目开发过程中经常会遇到多个进程对同一个文件进行读写问题,而此时就要对文件进行加锁控制,在 Python 的 linux 版本下有个 fcntl 模块可以方 ...

  3. pip安装软件报错 utf-8 code can't decode byte 0xcf in position7

    pip安装软件报错 utf-8 code can't decode byte 0xcf in position7 根据错误提示的路径找到__init__.py文件 根据错误提示的最后几句话找到对应的行 ...

  4. Linux下切换用户根目录的指令

    执行 usermod -d /shares/Storage/ ftp 会将用户ftp的根目录(~位置)修改为/shares/Storage/.

  5. Jmeter 逻辑控制器 之 Runtime Controller

    一.认识 Runtime Controller  控制其下样例执行的时间长度. 设置界面:  Runtime (seconds):运行时间,单位秒.即控制其下样例执行多长时间.与线程组中的调度器的持续 ...

  6. Python获取 东方财富 7x24小时全球快讯

    本文使用的IDE为PyCharm. 1.第三方库 (1)selenium selenium用来做浏览器自动化,因为这部分信息是动态加载的,不用这种方法读取不到相关数据. 安装: pip3 instal ...

  7. Jpeglib读取jpg文件

    整理自: http://hi.baidu.com/lewutian/item/e8eed42664ee61122a0f1c89 http://blog.csdn.net/mcgrady_tracy/a ...

  8. SpringBoot:SpringBoot整合JdbcTemplate

    个人其实偏向于使用类似于JdbcTemplate这种的框架,返回数据也习惯于接受Map/List形式,而不是转化成对象,一是前后台分离转成json方便,另外是返回数据格式,数据字段可以通过SQL控制, ...

  9. Mysql:too many connect

    1.问题展现应用端登录出现Too many connections报错 检查发现mysql数据库服务端已经达到了max_connections上限 #查看最大连接数 mysql> show va ...

  10. Jquery中数组转字符串,c:foreach自动将带","字符串进行拆分赋值

    1.数组转字符串,逗号分割 a.push()将元素依次添加至数组: b.join()将数组转换成字符串,里面可以带参数分隔符,默认[,] <script type = text/javascri ...