正则表达式

来源:互联网 发布:sql语句美化工具开发 编辑:程序博客网 时间:2024/06/01 07:29
正则表达式:
   点
    匹配任何单个字符。
  例如:
      正则表达式r.t匹配这些字符串:rat、rut、r t,但是不匹配root。

    匹配0或1个正好在它之前的那个字符。
    注意:
       这个元字符不是所有的软件都支持的。
       该字符不能用在正则表达式的开头。
^
   匹配一行的开始。
    例如:
       正则表达式^When in.*    能够匹配字符串“When in the…”的开始,但是不能匹配“What and When in the…“。
$
    匹配行结束符。
    例如:
       正则表达式weasel$ 能够匹配字符串“He‘s a weasel”的末尾,但是不能匹配字符串“They are a bunch of weasels.”。
*
    匹配0或多个正好在它之前的那个字符。
    例如:
       正则表达式.*意味着能够匹配任意数量的任何字符。  
    注意:不能用在正则表达式的开头。
+
    匹配1或多个正好在它之前的那个字符。
    例如:
       正则表达式9+匹配9、99、999等。
    注意:
       这个元字符不是所有的软件都支持的。
      不能用在正则表达式的开头。
\
    这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配。
例如:
    正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配 点字符,而不是任何字符的通配符。

|
    将两个匹配条件进行逻辑“或”(Or)运算。
例如:
    正则表达式(him|her) 匹配“it belongs to him”和“it belongs to her”,但是不能匹配“it belongs to them.”。
注意:这个元字符不是所有的软件都支持的。
()
   将 ( 和 ) 之间的表达式定义为“组”,并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个),它们可以用 \1 到\9 的符号来引用。
例如:
    正则表达式”.*(dream).*\1.*” 匹配“when I dream I dream you”,但是不能匹配“I have a dream”
[0-9] 匹配0-9的单个字符
  [a-z]   [A-Z]
  匹配任意单个数字或字母:[0-9]|[a-z]|[A-Z]    [0-9a-zA-Z]
 
  匹配5-10位数字或字母:[0-9]|[a-z]|[A-Z]    [0-9a-zA-Z]{5,10}

{i}    {i,j}
    匹配指定数目的字符,这些字符是在它之前的表达式定义的。
    例如:
       正则表达式A[0-9]{3} 能够匹配字符“A”后面跟着正好3个数字字符的串,例如A123、A348等,但是不匹配A1234。
       而正则表达式[0-9]{4,6} 匹配连续的任意4个、5个或者6个数字字符。
    注意:
       这个元字符不是所有的软件都支持的。
预先定义的字符类
       \d  一个数字字符[0-9]
       \D  一个非数字字符[^0-9]
       \s   一个空白字符[\t\n\t\f\x0B]
       \S   一个非空白字符
       \w  一个单词字符
       \W  一个非单词字符

匹配中文字符的正则表达式:
       [\u4e00-\u9fa5]
获取日期正则表达式:
       \d{4}[年|\-|\.]\d{1,2}[月|\-|\.] \d{1,2}日?  
匹配空白行的正则表达式
        \n\s*\r
匹配HTML标记的正则表达式:
        <(\S*?) [^>]*>.*?</>|<.*? />
匹配ip地址:
       ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d \d?)。    
匹配国内电话号码:
       \d{4}-\d{7}|\d{3}-\d{8}
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):
       ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配腾讯QQ号(腾讯QQ号从10000开始 ):
       [1-9][0-9]{4,}
匹配中国邮政编码(中国邮政编码为6位数字 ):
       [1-9]\d(?!\d)         
匹配身份证(中国的身份证为15位或18位 ):
       \d{17}[\d|X]|\d{15}
匹配特定数字:
    ^[1-9]\d*$ //匹配正整数
     ^-[1-9]\d*$ //匹配负整数
     ^-?[1-9]\d*$ //匹配整数
     ^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
     ^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)
     ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数
     ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数
     ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
     ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配 非负浮点数(正浮点数 + 0)
     ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)
匹配特定字符串:
    ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
    ^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
    ^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
    ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
    ^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串


       
 日期格式为2011-11-11或者2011/11/11或者2011年11月11日?
 email的格式?^.*@.*\.com$
 手机号格式?
 电话?[0-9]{4}-[0-9]{7}    000-11111111
 用户名只能包含字母和数字,并且数字不能开头,长度为5-10位:    [a-zA-Z][0-9a-zA-Z]{4,9}
  
原创粉丝点击