C#正则表达式

本文介绍了正则表达式的概念,包括量词的使用、边界匹配、常用方法如Match、Matches、Replace和Split,以及贪婪模式和非贪婪模式的区别。还讨论了ASCII表、特殊字符如w、D以及定位符如^和$的应用。
摘要由CSDN通过智能技术生成
  1. 量词

量词用于指定匹配字符的数量。例如,正则表达式 a{2,4} 匹配两个到四个连续的字符 a。

  1. 边界匹配

边界匹配用于匹配文本的开头或结尾。例如,正则表达式 ^abc 匹配以 abc 开头的文本,而正则表达式 abc$ 匹配以 abc 结尾的文本。

可以使用 Regex 类来创建和操作正则表达式。以下是一些常用的 Regex 类的方法:

  1. Match 方法:用于在输入字符串中搜索匹配项,并返回第一个匹配项。
  1. Matches 方法:用于在输入字符串中搜索所有匹配项,并返回一个匹配项集合。
  1. Replace 方法:用于替换输入字符串中的匹配项。
  1. Split 方法:用于将输入字符串按照正则表达式匹配项进行分割,并返回分割后的字符串数组。

贪婪模式和非贪婪模式

  • 贪婪模式:尽可能的多匹配
  • 非贪婪模式:在匹配成功的情况下尽量少匹配
  • 属于贪婪的量词:{n,m}{m,},"?","*","+"
  • 在贪婪模式的量词后面加上?,就变成了非贪婪模式量词,也叫做忽略优先量词

 

string pattern = @"[eo]";//提取包含eo的所有字符

[^条件],非,与不在[条件]中的任何单个字符匹配,默认情况下区分大小写

pattern = @"[^eow]";//Hll Wrld匹配不包含eow的所有项

[first-last]:区范围,从first开始到last范围的任何单个字符匹配,范围对应的是ASCII表

 pattern = @"[a-f]";//匹配a-f范围的所有项
pattern = @"[A-z]";//ASCII表对应的范围
//加上[\^.....]:表示在...到..范围
pattern = @"[\^A-Za-z]";

pattern = @"Wo.";//输出匹配项
input = "f4_fa5[uuu";
//\w:与任何单词字符进行匹配,等价于[0-9a-zA-Z]
//\w:可以匹配字母、下划线、数字
pattern = @"\w";//f4_fa5uuu   
pattern = @"\W";//[
string pattern = @"\S\s\S"; // 匹配非空字符、空白字符、非空字符
string input = "Hello World";
//在给定的输入字符串 "Hello World" 中,正则表达式匹配到了 "o W" 这个满足模式的子字符串。
  • \S 匹配任何非空字符。\S 是 \s 的反义,\s 匹配空白字符(包括空格、制表符、换行符等)。
  • \s 匹配一个空白字符。
  • \S 再次匹配任何非空字符。
  • //只匹配数字
    //\d:匹配一个数字字符。等价于[0-9]
    pattern = @"\d";//显示数字
    
     //\D:匹配一个非数字字符。等价于[^0-9]
    pattern = @"\D";//显示字母
    

    贪婪模式和非贪婪模式

  • 贪婪模式:尽可能的多匹配
  • 非贪婪模式:在匹配成功的情况下尽量少匹配
  • 属于贪婪的量词:{n,m}{m,},"?","*","+"
  • 在贪婪模式的量词后面加上?,就变成了非贪婪模式量词,也叫做忽略优先量词
string pattern = "wo*";//尽可能的输出
string input = "woods";

//定位符:^开头
pattern = @"^wo*d";
input = "woodwoooood";//wood
//input = "wooowoooood";//空
//$:表示必须出现字符串中的末尾或出现在换行之前
pattern = @"wo*d$";//woooood
//
pattern = @"^wo+d.o*d$";
//\A:匹配必须出现在字符串开头 ascii
pattern = @"\A\w{4}";
input = "Code-007";//Code
//\Z:匹配必须出现在字符串末尾
pattern = @"\w{3}\Z";//007

//将(和)之间的表达式定义为“组”
input = "(1)(3)(5)[7](9)";
//\(读取(  \)读取)加\表示不转义
pattern = @"\(\d\)";//(1)(3)(5)(9)
//G:表示匹配到上次结束的点
pattern = @"\G\(\d\)";//(1)(3)(5)
MatchCollection mc = Regex.Matches(input, pattern);
string info = "";
foreach (Match m in mc)
{
    info += m;
}
MessageBox.Show(info);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值