zoukankan      html  css  js  c++  java
  • 正则表达式随笔

    所谓正则表达式其实就是用一串模版字符串去匹配目标字符串。

    1.添加引用using System.Text.RegularExpressions;

    2.  

           TextBox txt=new TextBox();

            txt.TextChanged += (sender, e) =>

           {

               if(Regex.IsMatch(txt.Text,"^150.*"))
               {
                    MessageBox.Show("匹配成功");
                }

               else

              {

                   MessageBox.Show("匹配失败");

              }

           }

           这是一种写法,还可以这样写:

           Regex r=new Regex(); 

           bool is_match= r.IsMatch(txt.Text,"^150.*");

    其中双引号内为正则表达式的内容, ^是很多元字符中的一种,代表开头,即以150开头的

     . 代表除了换行符外的任意字符,* 代表前面的 . 可以是任意数量的

    所以整句话的意思就是以150开头的,后面跟除了换行符外的任意数量的任意字符串都可以匹配成功。

    还有各种各样的元字符,这里不做详述,网上一大堆


    *****************************************2016.10.24    狂拽酷炫掉渣天的分割线*****************************************

    最近遇到一个网页http请求,返回的字符串里面会随机插入代码,但是这段代码是以XML的格式加进去的,
    比如300033,返回的字符串里就是<a data=statid="c-cdmar" code="300033" class="eee">300033></a>  大致是这样的。
     
    用正则我是使用这一串 Regex r=new Regex("<a(.| )*?/a>");
    解释下
    <a匹配<a,
    (.| )匹配包括换行符在内的任意字符,为什么呢?因为字符串里面参杂了/n这种换行符
    *?是一个懒惰型数量匹配,什么意思呢?
    举个例子假如字符串为“<a data="dd" /a> 我是一串啦啦啦 <a data="cc" /a> 我是一串拉拉”
    实际上我们想得到<a data="dd" /a>和<a data="cc" /a>,如果用*的话则会得到<a data="dd" /a> 我是一串啦啦啦 <a data="cc" /a>  单独用*的话则会把整一串返回
    用了*?之后 即可得到两串,即*为贪婪型匹配,而*?为懒惰型匹配

  • 相关阅读:
    友元类和友元函数
    C++中构造函数和析构函数调用的时机
    Linux 下svn恢复到某一版本
    lua 中pairs 和 ipairs区别
    孤儿进程与僵尸进程
    union
    关于C++ const 的全面总结
    后台管理左侧菜单
    全选-反选-取消
    Dom-直接 /间接选择器
  • 原文地址:https://www.cnblogs.com/kevinWu7/p/10163556.html
Copyright © 2011-2022 走看看