版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CJB_King/article/details/52868852
一.定位元字符:
我们经常再正则表达式字符串前面加上@字符,这样不让编辑器去解析其中的转义字符,而作为正则表达式的语法(元字符)的存在;
\b : 匹配单词的开始或结束;
\B :匹配非单词的开始或结束;
^ :匹配必须出现在字符串的开头或行的开头;
$: 匹配必须出现在以下位置:字符串结尾,字符串结尾处的\n之前或行的结尾;
\A: 指定匹配必须出现在字符串的开头(忽略Multiline选项);
\z: 指定匹配必须出现在字符串的结尾(忽略Multiline选项);
\Z: 指定匹配必须出现在字符串的结尾或字符串结尾处的\n之前(忽略Multiline选项);
\G:指定匹配必须出现在上一个匹配出现的地方,与Match.NextMatch()一起使用时,此断言保证所有匹配都是连续的;
实例:
string s="Hello World";
string res=Regex.Replace(s,"^","开始")
//Regex命名空间:System.Text.RegularExpressions;
Console.WriteLine(res);
//输出结果为:开始Hello World;
二.基本语法元字符:
\w : 匹配字母,数字,下划线,汉字 (指大小写字母,0-9的数字,下划线);
\W :\w的补集 (除“大小写字母,0-9的数字,下划线”之外);
\s :匹配任意空白符 (包括换行符\n,回车符\r,制表符\t,垂直制表符\v,换页符\f);
\S :\s的补集(除\s定义的字符之外);
\d : 匹配数字(0-9数字);
\D :表示\d的补集 (除了“0-9数字”);
在正则表达式中,\是转义字符,*是元字符,如果要表示一个\ . *字符的话,需要使用\\ \. \*
三.反义字符:
\W :\w的补集 (除“大小写字母,0-9的数字,下划线”之外);
\S :\s的补集(除\s定义的字符之外);
\D :表示\d的补集 (除了“0-9数字”);
\B :匹配不是单词开头或结束的位置;
[abc] :匹配括号中的字符;
[a-c] :a字符到c字符之间是字符;
[^x] :匹配除了x以外的任意字符;
[^adwz] : 匹配除了adwz这几个字符以外的任意字符;
实例:
string str="I am a cat.";
string pattern=@"[^ahou]";
string s=Regex.Replace(str,pattern,"*");
Console.WriteLine(s);
//输出结果:**a**a**a**;
四.重复描述字符:
{n} : 匹配前面的字符n次;
{n,} : 匹配前面的字符n次或多于n次;
{n,m}:匹配前面的字符n-m次;
? :重复零次或一次;
+ :重复一次或更多次;
* :重复零次或更多次;
实例:
string s="46((*&sadfj就发给你就";
string pattern=@"\d|[a-z]";
MatchCollection col=Regex.Matches(s,pattern);
foreach(Match match in col)
{
Console.Write(match);
}
//输出结果:46sadfj
string s="lihan;lisi,wangfei.zhaoli";
string pattern=@"[;,.]";
string []resArray=Regex.Split(s,pattern);
foreach(var s in resArray)
{
Console.WriteLine(s);
}
//输出结果为:lihan
lisi
wangfei
zhaoli