• 正则表达式


    1,引子

    正则表达式的使用,可以通过简单的方法来实现强大的功能。就是用一串字符验证是符合一种规范,这个规范就是正则表达式。

    2,正则表达式的历史

    RegExp 是正则表达式的缩写 正则表达式的第一个实用应用程序就是Unix 中的 ged 编辑器。

    5,全部符号解释

    表2.常用的元字符

    代码

    说明

    ^

    匹配字符串的开始

    $

    匹配字符串的结束

    .

    匹配除换行符以外的所有字符

    w

    匹配字母或数字或下划线或汉字

    s

    匹配任意的空白符(空格)

    d

    匹配数字

    

    匹配单词的开始或结束

    d{8}表示数字重复出现8次,如果是QQ号可以这样表示d{5,12} 表2.常用的限定符

    代码/语法

    说明

    *

    重复零次或更多次

    +

    重复一次或更多次

    ?

    重复零次或一次

    {n}

    重复n次

    {n,}

    重复n次或更多次

    {n,m}

    重复n到m次,n不能大于m

    8,C#中对正则的使用

    RegularExpression 组合体

    使用RegExp规则类需引用System.Text.RegularExpressions文件

    该名字空间中包含6个类和一个定义

    描述

    Capture

    包含一次匹配的结果

    CaptureCollection

    Captrue的序列

    Group

    一次组记录的结果,由Capture继承而来

    Match

    一次表达式的匹配结果,由Group继承而来

    MatchCollection

    执行替换操作时使用的代理

    Regex

    编译后表达式的实例

      

    Regex包含的一些静态的方法:

    方法

    描述

    Escape

    对字符串中的regex中的转义符进行转义

    IsMatch

    判断是否匹配字符串,返回一上布尔值

    Match

    返回Match的实例

    Matchs

    返回一系列Match的方法

    Replace

    用替换字符串替换匹配的表达式

    Split

    返回一系列由表达式决定的字符串

    Unescape

    不对字符串中的转义字符进行转义

    示例

    常用表达式

    验证对象

    验证表达式

    数字字母下划线

     

    ^[a-z,A-Z,0-9,_]*$

     

    手机号

     

    ^(13[0-9]|14[0-9]|15[0-9]|18[0-9])d{8}$

     

    电话号

     

    ^(0[0-9]{2,3}-?)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$

     

    电话或手机号

     

    ^(0[0-9]{2,3}-?)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$|^(13[0-9]|14[0-9]|15[0-9]|18[0-9])d{8}$

     

    1,正则表达式验证手机号

    Regex reg=new Regex(@"^(12[0-9]|186|188|150|151|158|159|147)d{8}$");

    1,判断是否匹配

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Text.RegularExpressions;

     

    namespace ConsoleApplication1

    {

    class Program

    {

    static void Main(string[] args)

    {

    while (true)

    {

    Console.WriteLine("请输入一个三位数字");

    string regstr = @"^ddd$";

    Regex reg = new Regex(regstr);

    string intputstr = Console.ReadLine();

    if (reg.IsMatch(intputstr))

    {

    Console.WriteLine("正确");

    }

    else

    {

    Console.WriteLine("错误");

    }

    Console.ReadKey();

    }

    }

    }

    }

     

     

    2,正则表达式判断开头字母是否为8

    if (dt != null && dt.Rows.Count > 0)

    {

    string a = dt.Rows[0][0].ToString();

    string regstr = @"^8.......$";

    Regex reg = new Regex(regstr);

    if (reg.IsMatch(a))

    {

    flag = true;

    }

    else { flag = false; }

    }

     

     

    例3:

    string regstr = @"^(?0d{2}[) -]?d{8}$";

    Regex reg = new Regex(regstr);

    string intputstr = "010-22222222";

    if (reg.IsMatch(intputstr))

    {

    Console.WriteLine("正确");

    }

    else

    {

    Console.WriteLine("错误");

    }

     

    例4:MatchEvaluator

    return _JsonDateReg.Replace(jsonStr,new System.Text.RegularExpressions.MatchEvaluator(obj=>string.Format(":"{0:yyyy-MM-dd HH:mm:ss}"")));

  • 相关阅读:
    NET与J2EE比拼
    NET与J2EE比拼
    Linux下添加FTP账号和服务器、增加密码和用户,更改FTP目录
    PS去除图片中文字的方法详细图文教程
    VC下绘图程序Demo
    U盘(auto病毒)类病毒分析与解决方案
    数据库技术源代码
    多边形填充实验
    错误总结1,动态加载部分不能显示的原因
    android实现开机欢迎界面
  • 原文地址:https://www.cnblogs.com/llchang/p/5256563.html
Copyright © 2020-2023  润新知