zoukankan      html  css  js  c++  java
  • 人人都看得懂的正则表达式

    正则表达式可以帮助我们更好的描述复杂的文本格式。一旦你描述清楚了这些格式,那你就可以利用它们对文本数据进行检索、替换、提取和修改操作。

    下面有一个正则表达式的简单例子。第一步先要引入有关正则式的命名空间:

    using System.Text.RegularExpressions;
    

     第二步就是用指定的正则式构建一个正则表达式对象,下面的正则式是用来搜索长度为10的a-z的英文字母:

    Regex obj = new Regex("[a-z]{10}");
    

     最后,根据正则式在指定数据中检索匹配项,如果匹配IsMatch方法就会返回true。

    MessageBox.Show(obj.IsMatch(“shivkoirala”).ToString());
    

    3个重要的正则式命令

    记住正则语法最好的办法就是记住这三样东西:Bracket(括号), caret(插入符号)和Dollars(美元符号)。

    B

    在正则表达式中有3种类型的括号

    方括号 “[“和花括号“{“ 。

    方括号"["内是需要匹配的字符,花括号"{"内是指定匹配字符的数量。

    圆括号“(“ 则是用来分组的。

    C 插入符号 “^” 表示正则式的开始。
    D 美元符号“$” 表示正则式的结束。

    现在你知道上面的3个语法后,你就可以写世界上任何一条验证规则了。比如下面的例子就很好的说明了上面3条正则语法是如何协调运作的。

    注:上图有个错误,"()"应为"{}"

    • 上面的这条正则式只能匹配a-z的英文字母,同样是在中括号中标明匹配范围。
    • 花括号中则是标明匹配字符串的最小长度和最大长度。
    • 最后为了让表达式更规则,分别在开头和结尾加上了插入符号"^"和美元符号"$"。

    好了,现在我们就用上面的3条语法来实现一些正则表达式的验证规则吧。

    检查用户是否输入了shivkoirala?

    shivkoirala
    

     让我们开始第一个验证,输入的字符在a-g之间?

    [a-g]
    

     输入的字符在a-g之间并且长度为3?

    [a-g]{3}
    

     输入的字符在a-g之间并且最大长度为3最小长度为1?

    [a-g]{1,3}
    

     我如何在匹配像91230456, 01237648那样的固定8位数?

    ^[0-9]{8}$
    

     如何验证最小长度为3最大长度为7的数字,如:123, 1274667, 87654?

    ^[0-9]{3,7}$
    

     如何验证像LJI1020那样的发票编号,前3个是字母剩余为8位长度的数字?

    前三个是字母:

    ^[a-z]{3}
    

     后面是8位长度的数字:

    [0-9]{8}
    

     所以整个表达式为:

    ^[a-z]{3}[0-9]{7}$
    

     验证像INV190203 或 inv820830那样的前3位是不区分大小写的英文字母,剩余8位是数字。

    在前面的表达式中只能匹配前3个是小写英文字母的发票编号,如果我们输入大写字母那就不能匹配了。所以为了确保前3个字母是不区分大小写的,我们就要用表达式^[a-zA-Z]{3}。

    ^[a-zA-Z]{3}[0-9]{7}$
    

    我们可以验证简单的网址URL格式吗?

    第一步:检查是否存在www:

    ^www.
    

     第二步:域名必须是长度在1-15的英文字母:

    . [a-z]{1,15}
    

     第三步:以.com或者.org结束:

    . (com|org)$
    

     完整的表达式如下:

    ^www[.][a-z]{1,15}[.](com|org)$
    

    让我们在来看看BCD(其实也就是上面说的3条基本语法)如何验证email格式。

    第一步:email开始是长度在1-10的英文字母,最后跟一个"@":

    ^[a-zA-Z0-9]{1,10}@
    

     第二步:@后面是长度在1-10的英文字母,后面跟一个".":

    [a-zA-Z]{1,10}.
    

     第三步:最后以.com或.org结束:

    .(com|org)$
    

     最后完整的表达式如下:

    ^[a-zA-Z0-9]{1,10}@[a-zA-Z]{1,10}.(com|org)$
    

    快捷命令

    你也可以用以下的快捷命令来简化你的正则表达式:

    实际命令 快捷命令
    [0-9] d
    [a-z][0-9][_] w
    0次或多次发生 *
    至少一次发生 +
    0次或1次发生 ?

    全文完。

    转自:http://www.nowamagic.net/librarys/veda/detail/792——人人都看得懂的正则表达式教程

  • 相关阅读:
    mysql BETWEEN操作符 语法
    mysql IN操作符 语法
    mysql LIKE通配符 语法
    mysql TOP语句 语法
    mysql DELETE语句 语法
    mysql Update语句 语法
    mysql INSERT语句 语法
    mysql ORDER BY语句 语法
    mysql OR运算符 语法
    mysql AND运算符 语法
  • 原文地址:https://www.cnblogs.com/mvv118/p/4685869.html
Copyright © 2011-2022 走看看