Regex.Match 方法
Regex.Match 方法
在输入字符串中搜索正则表达式的匹配项,并将精确结果作为单个 Match 对象返回。
重载列表
(1) 在指定的输入字符串中搜索 Regex 构造函数中指定的正则表达式匹配项。
[C#] public Match Match(string);
(2) 从指定的输入字符串起始位置开始在输入字符串中搜索正则表达式匹配项。
[C#] public Match Match(string, int);
(3) 在指定的输入字符串中搜索 pattern 参数中提供的正则表达式的匹配项。
[C#] public static Match Match(string, string);
(4) 从指定的输入字符串起始位置开始在输入字符串中搜索具有指定输入字符串长度的正则表达式匹配项。
[C#] public Match Match(string, int, int);
(5) 在输入字符串中搜索 pattern 参数中提供的正则表达式的匹配项(匹配选项在 options 参数中提供)。
[C#] public static Match Match(string, string, RegexOptions);
二、应用举例
1.下面的代码是为了取出网页中的Title属性
Match TitleMatch =
Regex.Match(fileContents, "<title>([^<]*)</title>",
RegexOptions.IgnoreCase | RegexOptions.Multiline );
].Value;
注意红色的1, Regex.Match方法得到的Groups的索引是从1开始的,而不是从0开始的
2. 下面的代码是为了取出网页头部的"Content"属性
Match DescriptionMatch =
Regex.Match( fileContents, "<META NAME=\"DESCRIPTION\"
CONTENT=\"([^<]*)\">", RegexOptions.IgnoreCase |
RegexOptions.Multiline );
filedesc = DescriptionMatch.Groups[1].Value;
3. 下面的代码用来分解一个字符串
string text = "One car red car blue car";
string pat = @"(\w+)\s+(car)";
// Compile the regular expression.
Regex r = new Regex(pat, RegexOptions.IgnoreCase);
// Match the regular expression pattern against a text string.
Match m = r.Match(text);
int matchCount = 0;
while (m.Success)
{
Response.Write("Match"+ (++matchCount) + "<br>");
for (int i = 1; i <= 2; i++)
{
Group g = m.Groups[i];
Response.Write("Group"+i+"='" + g + "'" + "<br>" );
CaptureCollection cc = g.Captures;
for (int j = 0; j < cc.Count; j++)
{
Capture c = cc[j];
Response.Write("Capture"+j+"='" + c + "', Position="+c.Index + "<br>");
}
}
m = m.NextMatch();
}
运行结果如下:
Match1
Group1='One'
Capture0='One', Position=0
Group2='car'
Capture0='car', Position=4
Match2
Group1='red'
Capture0='red', Position=8
Group2='car'
Capture0='car', Position=12
Match3
Group1='blue'
Capture0='blue', Position=16
Group2='car'
Capture0='car', Position=21
string str = @"<tr style='HEIGHT: 24.55pt'>
<td style='WIDTH: 149px' valign='top' width='78' bgcolor='#eaeaea'>
<b>楼盘地址</b>
</td>
<td valign='top' colspan='3'>
<input id='textfield' title='楼盘地址' style='WIDTH: 231px; HEIGHT: 28px' size='9' value='星河湾荟心园7栋3座302' name='楼盘地址'>
</td>
<td style='WIDTH: 121px' valign='top' width='78' bgcolor='#eaeaea'>
<b>成交日期</b>
</td>
<td style='WIDTH: 140px' valign='top' width='238'>
<input id='textfield' title='客源号' style='WIDTH: 95px; HEIGHT: 28px' value='2010.9.25' name='客源号'>
</td>
</tr>";
string str2= Regex.Match(str, "<input id='textfield' .*>?").ToString();
string str3 = Regex.Match(str2, "value='.*?'").ToString();
Response.Write(str3);
Regex.Match 方法的更多相关文章
- .net正则表达式大全(.net 的 System.Text.RegularExpressions.Regex.Match()方法使用)
正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET的System.dll类库提供的System.Text.RegularExpression ...
- 字符串中判断存在的几种模式和效率(string.contains、string.IndexOf、Regex.Match)
通常情况下,我们判断一个字符串中是否存在某值常常会用string.contains,其实判断一个字符串中存在某值的方法有很多种,最常用的就是前述所说的string.contains,相对来说比较常用的 ...
- 1.3 正则表达式和python语言-1.3.4使用 match()方法匹配字符串
1.3.4使用 match()方法匹配字符串(第一次写博客,格式,述语有不当之处还请见谅)2018-05-08 Python 代码是以Jupyter Notebook编写的,主要写的是python3的 ...
- 修改ZuulHandlerMapping私有变量pathMatcher,重写match方法,使url匹配兼容正则表达式。
一.起源 在mocksever中引入了spring cloud zuul做代理转发,如果请求的url和配置的mock规则匹配(精确匹配和模糊匹配),忽略,不做转发.如果mock配置的url和请求url ...
- c# regex Match Matches MatchCollection 用法
string text = "1A 2B 3C 4D 5E 6F 7G 8H 9I 10J 11Q 12J 13K 14L 15M 16N ffee80 #800080"; Reg ...
- 正则表达式中的exec和match方法的区别
正则表达式中的exec和match方法的区别 字符串的正则方法有:match().replace().search().split() 正则对象的方法有:exec().test() 1.match m ...
- js的match()方法介绍
定义和用法 match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配. 该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置. ...
- JS match() 方法 使用
javascript中的match函数是使用正则表达式对字符串进行查找,并将查找的结果作为数组返回,在实际开发中非常的有用,使用方法如下: stringObj.match(rgExp) 其中strin ...
- 一款免费好用的正则表达式工具:Regex Match Tracer
推荐分享:一款免费好用的正则表达式工具:Regex Match Tracer v2.1.5 free version 下载地址:Regex Match Tracer
随机推荐
- html form一点基础知识,实现文件上传
form用于提交文件需要修改其entype属性. enctype属性:规定在发送表单数据之前如何对其进行编码. 默认情况,enctype的编码格式是application/x-www-form-url ...
- Table of Contents - JavaSE
Java Bean Lombok IO Commons-IO - IOUtils Regular Expression 正则表达式常用操作 Concurrency java.util.concurre ...
- django 学习-13 Django文件上传
1..vim blog/views.py from django import formsfrom django.http import HttpResponse 1 2 from dja ...
- asp.net渐变
简介:第一个参数代表渐变的方向,后面的StartColorStr和End就不用解释了: filter: progid:DXImageTransform.Microsoft.Gradient(Gradi ...
- 跟我一起学习ASP.NET 4.5 MVC4.0(三)(转)
今天我们继续ASP.NET 4.5 MVC 4.0,前两天熟悉了MVC4.0在VS11和win8下的更新,以及MVC中的基础语法和几个关键字的使用.了解了这些就可以对MVC进一步认识,相信很多人都对M ...
- ef codeFirst 修改表结构 增加字段等 EF code first需要重新生成库导致数据丢失的问题.
需要在库程序包管理器里依次执行以下命令: 1.启用迁移功能:Enable-Migrations -ContextTypeName MvcMovie.Models.MovieDbContext 2.建立 ...
- 北大ACM(POJ1007-DNA Sorting)
Question:http://poj.org/problem?id=1007 问题点:逆序数及快排. Memory: 248K Time: 0MS Language: C++ Result: Acc ...
- asp.net中URL参数传值中文乱码的三种解决办法
在做Asp.Net开发的时候,参数传递中文时,经常会遇到页面乱码的问题,下面是在网上收集的相关资料,请大家参考: 解决的方法一般有3种: 1.设置web.config文件 <system.web ...
- Cocos2d-js中使用纹理对象创建Sprite对象
本节我们会通过一个实例介绍纹理对象创建Sprite对象使用,这个实例如图5-2所示,其中地面上的草是放在背景(如下图所示)中的,场景中的两棵树是从后图所示的“树”纹理图片中截取出来的,图5-5所示是树 ...
- C#中多线程的简单应用
下面是C#中使用多线程的一个简单用法介绍: //主线程: Thread thread = new Thread(new ThreadStart(ReadExportData));//创建分支线程thr ...