请输入关键字
正则表达式
Alin|2017-12-1
正则表达式是用来进行文本处理的技术,与语言无关,它操作的对象是文本,字符串。
一个正则表达式就是由普通字符以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符
 
正则表达式开始以^开始以$结尾(完整匹配),如果有转义符中,最前面加@或在转义符前再加\。如果不加^$是任何地址出现都返回true;
z|food 表示任何位置出现z或food都是匹配的
(z|f)ood 
^z|food$ 表示以z开头或以food结尾
^(z|food)$ 表示完整匹配z或food ()括号是完整匹配
 
@"\d{11}$" //手机号判断
 
从字符串中提取字符串来提取子字符串,不需要加^&。需要用MathCollection matches=Regex.Matches(html,@"[-a-zA-Z0-9.]@[-a-zA-Z0-9_]+(\.[a-zA-z]+)+")
foreach(match item matches)
{
item.Value;
}
 
如果要提取子字符串的值,这时就用到了提取组功能,()表示分组,第一个左括号为索引1的第一组开始,依次即可。
MathCollection matches=
Regex.Matches(html,@"([-a-zA-Z0-9.])@([-a-zA-Z0-9_]+(\.[a-zA-z]+)+"))
foreach(match item matches)
{
  for(int i=0;i<matches.Count,i++){
item.Groups[i].Value;       
}
}
 
提取路径中的文件名
string path=@"D:\DevelopToolSoftware\deploy\Release\CassiniDev4.exe.config";
 
Match match=Regex.Match(path,@".+\\(.+)");//把需要提取的文件名正则表达式括号起来。
match.Group[1].Value;//找出文件名
 
{3-5}//限定符
限定符:{},*,+
贪婪:.+(默认为贪婪模式,尽可能的多匹配)
非贪婪:.+?(尽可能的少的匹配,1次)当在限定符后面使用时才是终止贪婪模式
.任意的单个字符
 
+1次或多次
终止贪婪模式最好后面也加个标记。这样就可以循环提取。
 
*匹配0次或多次
 
\b断言单词的边界 一边是单词,一边不是单词 \b指一个位置识别
 
 
 
正则表达式是基于一套状态机算法,它会存在缓存中。如果滥用正则,效率会低。能用字符串操作,尽量避免使用正则。多字符串提取操作可以使用,一般看项目实则需要来应用。
 
 
 
 
赞一下19||已浏览1773

本站版本归木之林解释所有 copyright(C)2010-2026www.mzlin.net 备案/许可证编号为:粤ICP备15050036号