C# 中使用正则表达式 Regex.Matches方法的几个应用[转]
用于正则表达式的 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方法的几个应用[转]的更多相关文章
- (译)JavaScript 中的正则表达式(RegEx)实操——快速掌握正则表达式,伴有随手可练的例子————(翻译未完待续)
(原文:https://blog.bitsrc.io/a-beginners-guide-to-regular-expressions-regex-in-javascript-9c58feb27eb4 ...
- Python中re(正则表达式)模块使用方法
Python中常用的正则表达式处理函数: re.match re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词. import re text = "JGood ...
- 在C#中使用正则表达式最简单的方式
更新记录 本文迁移自Panda666原博客,原发布时间:2021年5月11日. 在.NET中使用正则表达式与其他语言并无太大差异.最简单的使用就是使用Regex类型自带的静态方法. 注意:在.NET中 ...
- 正则表达式中Pattern类、Matcher类和matches()方法简析
1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一 ...
- .net正则表达式大全(.net 的 System.Text.RegularExpressions.Regex.Match()方法使用)
正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET的System.dll类库提供的System.Text.RegularExpression ...
- Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量,不具有任何匹配功能
Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量,不具有任何匹配功能. 下面是个例子: import org.junit.Test; import java. ...
- ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证
ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...
- Java正则表达式之Matcher类的find和matches方法的区别
讨论整个问题之前,先看个例子: 从上面的例子可以看出 matches()是整个字符串完全匹配时,才会返回true 而find()则只需要字符串中,找到某部分的子字符串匹配则返回true ...
- 正则表达式中的exec和match方法的区别
正则表达式中的exec和match方法的区别 字符串的正则方法有:match().replace().search().split() 正则对象的方法有:exec().test() 1.match m ...
随机推荐
- Hive-概述
Hive:由 Facebook 开源用于解决海量结构化日志的数据统计. Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能. 本质是:将 ...
- centos7 设置 tomcat 开机自启
1.创建文件 # vi /etc/systemd/system/tomcat.service [Unit] Description=Tomcat8540 After=syslog.target net ...
- AnimationDrawable
①先定义一个AnimationDrawable的xml资源文件: <?xml version="1.0" encoding="utf-8"?> &l ...
- mac配置maven项目的方法(含导入selenium包)
1.配置了java的环境变量 文件位置: /Users/lucax/.bash_profile JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1 ...
- http://www.cda.cn/view/25735.html
通过实例浅析Python对比C语言的编程思想差异 我一直使用 Python,用它处理各种数据科学项目. Python 以易用闻名.有编码经验者学习数天就能上手(或有效使用它). 听起来很不错,不过,如 ...
- delphi7 treeview + 数据库 实现动态节点维护
首先说下树节点对应的表的基本结构,必需要有的字段(节点编号,父节点编号,节点名称),其他字段根据你开发的需要添加从添加节点开始,一开始就取出表中最大节点编号,每次添加节点的时候,该节点编号增加1;添加 ...
- Redis CrackIT 入侵事件引发Linux 沦陷
▲针对全球6379端口的redis服务器做了扫描,结果如上图 如图开放在公网的redis的6379端口的ip总数有63443个.无密码认证的IP有43024个,在总数占比里达到67%.发现遭受到red ...
- Caché,Cache数据库下载
Caché数据库主要用于医疗领域,国内的开发人员比较少接触,使用环境相对封闭,前段时间刚才用到,下载也费了许多时间,特记录一下,帮助那些需要的人. 顺便说一下,TreeSoft数据库管理系统,目前支持 ...
- sed工具的基本用法
sed文本处理工具的用法: 用法1:前置命令 | sed [选项] '条件指令' 用法2:sed [选项] '条件指令' 文件.. .. 认识sed工具的基本选项 sed命令的常用选项如下: -n(屏 ...
- 【Matlab开发】函数bsxfun的使用
[Matlab开发]函数bsxfun的使用 标签:[Matlab开发] 版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/lg1259156776/. 说明:当我们 ...