C#正则表达式Regex类的使用
C#中为正则表达式的使用提供了非常强大的功能,这就是Regex类。这个包包含于System.Text.RegularExpressions命名空间下面,而这个命名空间所在DLL基本上在所有的项目模板中都不需要单独去添加引用,可以直接使用。
1、定义一个Regex类的实例
Regex regex = new Regex(@"\d");
这里的初始化参数就是一个正则表达式,“\d”表示配置数字。
2、判断是否匹配
判断一个字符串,是否匹配一个正则表达式,在Regex对象中,可以使用Regex.IsMatch(string)方法。
regex.IsMatch("abc"); //返回值为false,字符串中未包含数字
regex.IsMatch("abc3abc"); //返回值为true,因为字符串中包含了数字
3、获取匹配次数
使用Regex.Matches(string)方法得到一个Matches集合,再使用这个集合的Count属性。
regex.Matches("abc123abc").Count;
返回值为3,因为匹配了三次数字。
4、获取匹配的内容
使用Regex.Match(string)方法进行匹配。
regex.Match("abc123abc").Value;
返回值为1,表示第一个匹配到的值。
5、捕获
正则表达式中可以使用括号对部分值进行捕获,要想获取捕获的值,可以使用Regex.Match(string).Groups[int].Value来获取。
Regex regex = new Regex(@"\w(\d*)\w"); //匹配两个字母间的数字串
regex.Match("abc123abc").Groups[0].Value; //返回值为“123”。
using System;
using System.Text.RegularExpressions;
namespace Magci.Test.Strings
{
public class TestRegular
{
public static void WriteMatches(string str, MatchCollection matches)
{
Console.WriteLine("\nString is : " + str);
Console.WriteLine("No. of matches : " + matches.Count);
foreach (Match nextMatch in matches)
{
//取出匹配字符串和最多10个外围字符
int Index = nextMatch.Index;
string result = nextMatch.ToString();
int charsBefore = (Index < ) ? Index : ;
int fromEnd = str.Length - Index - result.Length;
int charsAfter = (fromEnd < ) ? fromEnd : ;
int charsToDisplay = charsBefore + result.Length + charsAfter;
Console.WriteLine("Index: {0},\tString: {1},\t{2}", Index, result, str.Substring(Index - charsBefore, charsToDisplay));
}
} public static void Main()
{
string Str = @"My name is Magci, for short mgc. I like c sharp!";
//查找“gc”
string Pattern = "gc";
MatchCollection Matches = Regex.Matches(Str, Pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
WriteMatches(Str, Matches);
//查找以“m”开头,“c”结尾的单词
Pattern = @"\bm\S*c\b";
Matches = Regex.Matches(Str, Pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
WriteMatches(Str, Matches);
}
}
}
C#正则表达式Regex类的使用的更多相关文章
- C#正则表达式Regex类的用法
C#正则表达式Regex类的用法 更多2014/2/18 来源:C#学习浏览量:36891 学习标签: 正则表达式 Regex 本文导读:正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串, ...
- C#正则表达式Regex类
C#正则表达式Regex类的使用 C#中为正则表达式的使用提供了非常强大的功能,这就是Regex类.这个包包含于System.Text.RegularExpressions命名空间下面,而这个命名空间 ...
- C#正则表达式Regex类使用
作为文本处理的利器——Perl语言对正则表达式的最强大支持起到了重要的作用,正因为如此,许多其他语言在加入正则表达式引擎的时候都会或多或少的兼顾perl风格的正则表达式,开发出相应的引擎.本人使用pe ...
- C#正则表达式Regex类的介绍
一.在C#中,要使用正则表达式类,请在源文件开头处添加以下语句: using System.Text.RegularExpressions; 二.RegEx类常用的方法 1.静态Match方法 使用静 ...
- (转)C#正则表达式Regex类的用法
原文地址如下:http://www.studyofnet.com/news/297.html 一.C#正则表达式符号模式 字 符 描 述 \ 转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反 ...
- 用Regex类计算一个字符串出现次数是最好方法【转载】
我的一个朋友问我,怎么在c#或vb.net中,计算一个字符串中查找另一个字符串中出现的次数,他说在网上打了好多方法,我看了一下,有的是用replace的方法去实现,这种方法不是太好,占资源太大了.其实 ...
- C#正则表达式编程(二):Regex类用法
上一篇讲述了在C#中有关正则表达式的类之间的关系,以及它们的方法,这一篇主要是将Regex这个类的用法的,关于Match及MatchCollection类会在下一篇讲到.对于正则表达式的应用,基本上可 ...
- C#正则表达式Regex常用匹配
使用Regex类需要引用命名空间:using System.Text.RegularExpressions; 利用Regex类实现验证 示例1:注释的代码所起的作用是相同的,不过一个是静态方法,一个是 ...
- 关于C#正则表达式MatchCollection类的总结,正则表达式的应用
认识MatchCollection 类 表示通过以迭代方式将正则表达式模式应用于输入字符串所找到的成功匹配的集合. 命名空间: System.Text.RegularExpressions 属性:C ...
随机推荐
- Ubuntu上使用vnc服务
http://www.aichengxu.com/linux/8479752.htm 1. sudo apt-get install x11vnc 2. sudo x11vnc -storepassw ...
- python 函数,内置函数
1.函数 1.1 定义函数 ·函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). ·任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. ·函数的第一行语句可以选择性 ...
- python 后台运行命令
nohup python a.py > a.log 2>&1 & 在窗口中单开虚拟session: tmux new -s "name" 推出虚拟窗口 ...
- 签名&加密的区别
https://www.zhihu.com/question/27669212/answer/38037256 就拿A给B发送经过签名加密信息来说: 1.A对信息签名的作用是确认这个信息是A发出的,不 ...
- ring0 关于SSDTHook使用的绕过页面写保护的原理与实现
原博:http://www.cnblogs.com/hongfei/archive/2013/06/18/3142162.html 为了安全起见,Windows XP及其以后的系统将一些重要的内存页设 ...
- C++ 数据库 char 转 wchar_t SQLWCHAR
C++中对数据库的操作感觉太复杂了,不如C#好使,但最近出于某些原因还是学习了一下C++下操作数据库的方法. 如果要想用C++实现对数据库的操作其实很简单,但是如果你需要动态的操作数据库(比如获得用户 ...
- 初识Git与Github
学习和使用Git和Github的确是一件很有意义的事,通过使用Git和Github,可以让我们很方便地管理自己的各种文件,还可以帮助一名程序员更好地用于代码管理.而对于一名软件技术人员,建立自己的Gi ...
- 我是一只IT小小鸟读后感 Part 1
我是一只IT小小鸟读后感 Part 1 梦断计院 作为一个工科生,真的和作者想到一块去了.在科大这个环境下,GPA成了衡量一个学生优秀与否的唯一因素,而真正对于编程和技术性的东西有兴趣的,往往被埋没在 ...
- C++学习之【使用位操作符求素数分析】
先放普通代码: #include <iostream> using namespace std; void getPrime_1() { const int MAXN = 100; boo ...
- libevent evbuffer参考文章
https://blog.csdn.net/FreeeLinux/article/details/52799951 http://cache.baiducontent.com/c?m=9d78d513 ...