正则表达式

正则表达式结合RegexBuddy工具

正则表达式:又称为规则表达式,适用于进行文本匹配的工具

1.简单的正则表达式

          例:him,history,high ,hi在这个字符串匹配出hi

          正则表达式:hi

          若要精确的匹配出hi正则表达式:\bhi\b

        

\b是正则表达式规定的一个特殊代码(元字符),单词的开头或结尾,也就是单词的分界处

1.元字符的讲解

代码 说明

. 匹配除换行符以外的任意字符

\w 匹配字母数字下划线以及汉字

\s 匹配任意的空白符

\d 匹配数字

\b 匹配单词开始与结束的字符

^ 匹配字符串的开始的字符

$ 匹配字符串的结束的字符

=============================================

\W 匹配任意不是字母数字下划线以及汉字

\S 匹配任意不是的空白符

\D 匹配数字

\B 匹配不是单词单词开始与结束

[^x] 匹配除了x以外的任意字符

[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

2.字符转义

字符转义‘\’:如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:没法制定它们,因为他们会被解释成其他的意思。这时你就必须使用\来取消这些字符的特殊意义。因此,应该使用\.和\*。当然要查找本身,也德用\\

3.常用限定符

代码 说明

* 重复零次或更多次

+ 重复一次或更多次

? 重复零次或一次

{n} 重复n次

{n,} 重复n次或更多次

{n,m} 重复n到m次

实例:

public ActionResult RegexCshaarp()

        {

            string str = "<img οnlοad=\"AutoResizeImage(200,200,this)\"src=\"/Document/Title/Temp/2017-12-114bc5.png\" >" +

                 "<img οnlοad=\"AutoResizeImage(200,200,this)\"src=\"/Document/Title/Temp/2017-12-114bc5.png\" >" +

                 "<img οnlοad=\"AutoResizeImage(200,200,this)\"src=\"/Document/Title/Temp/2017-12-114bc5.png\" >";

            //实例化

            Regex regex = new Regex("onload.+?(?=src)");

            //IsMatch:指定的正则表达式在指定的输入字符串中是否找到了匹配项。

            //如果正则表达式找到匹配项,则为true否则为false。

            bool blReg = regex.IsMatch(str);

            //Match:指定的正则表达式的第一个匹配项

            //返回"一个"包含有关匹配的信息的对象

            Match match = regex.Match(str);

            string strl = match.Value;

            //value:返回结构通过匹配捕获的子字符串

            // MatchCollection表示通过以迭代方式将正则表达式模式

            //应用于输入字符串所找到的"成功匹配"的集合

            MatchCollection matchCol = regex.Matches(str);

            for(int i=0;i<matchCol.Count;i++)//通过循环获取每一个匹配对象

            {

                string valuel = matchCol[i].Value;

            }

            //第二种写法:

            bool blRG1 = Regex.IsMatch(str, "(?<=Document/Title/Temp/).+?(?=\")");

            Match match1 = Regex.Match(str, "(?<=Document/Title/Temp/).+?(?=\")");

            MatchCollection matchCol1 = Regex.Matches(str, "(?<=Document/Title/Temp/).+?(?=\")");

            for(int i=0;i<matchCol1.Count;i++)//通过循环获取每一个匹配对象

            {

                Match ma = matchCol1[i];

                string value1 = ma.Value;

            }

            //Replace:替换与指定正则表达式匹配的所有字符串

            string str2 = Regex.Replace(str, "onload.+?(?=src)", "~~~~");

            return Content("");

        }

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值