zoukankan      html  css  js  c++  java
  • 实习记录7(正则表达式)

    好好写一篇关于正则表达式的文章,只是个开始。。。。。。。(妹的,说了又没执行,毛线。。。)

    1,判断TXT文本框里的值是否是整数类型 http://wenwen.soso.com/z/q120543222.htm,

    c#中如何使用正则判断文本框中的内容为正整数且输入的数值范围是0到36 bool flag = Regex.IsMatch(textBox1.Text, "^[0-9]$|^[1-2][0-9]$|^3[0-6]$");

    2,如何判断输入文本框是值是否是数字 http://www.cnblogs.com/chenxiao-ASPNET/archive/2011/02/13/1952913.html

    3,只限定它只能输入数字,或怎么判断他的值是一个数字 http://bbs.bccn.net/thread-146830-1-1.html

    正则表达式的学习 http://www.cnblogs.com/bangbangjiang/p/3246193.html

    http://www.cnblogs.com/baochuan/p/3169988.html#!comments

    http://www.cnblogs.com/wangqiguo/archive/2012/05/08/2486548.html

    http://www.zhihu.com/question/20197998

    http://www.cnblogs.com/eagle1986/archive/2010/01/12/1644714.html

        你妹啊,整天就是YY,收集些资料给自己学习,实际上又不会看,妹的,当这样虚伪的好学生真的好么???好个毛线啊,真是被自己的“愚蠢”害惨了。。。。(靠,作为旁观者去看自己还真是能发现自己是如此傻逼。。。)

    1.什么是正则表达式?

     以前做的过程中,好像表单的验证时要用到,不过那时好像只是调用了其中的某个函数,然后就没下文了,妹的,这就是你学什么东西都半吊子的原因,知道吗?

     正则表达式是一种描述字符串结构的语法规则(妹的,搞这么抽象干嘛?),是一个特定的格式化模式,可以匹配,替换,截取匹配的字串(好了,这是它的作用,知道吧)。

     1.1学习正则表达式之前,要了解的几个术语。( 你妹啊,这样看着还是不懂啊!! !)

      grep:最初是ED编辑器中的一条命令,用来显示文件中特定的内容,后来成为一个独立的工具grep(没接触过,没用过,你想看着就懂啊,你妹的。。。)

      egrep:扩展的grep,大大增强了正则表达式的能力。

      POSIX(可移植操作系统接口):一系列标准,确保操作系统之间的可移植性。

      Perl(实际抽取与汇报语言) (妹的,又不知道干嘛用的。。。)

      PCRE:兼容Perl正则表达式的一套正则引擎。。。

    2.再来看下正则表达式的语法规则

     一个完整的正则表达式由两部分构成,元字符和文本字符。元字符就是具有特殊含义的字符,如“*”和“?”。文本字符就是普通的文本,如字母和数字等。(你妹啊,没看懂书上的例子啊。。)PCRE风格的正则表达式一般放置在定界符"/"中间。如"/w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*/"  (妹的,初看这一串表达式,你看得懂这是什么意思?没看懂正常好吗?妹的。。)

      2.1 行定位符(^和$)

      行定位符用来描述字串的边界。"^"表示行的开始,"$"表示行的结束。

      如:^tm 该表达式表示以tm开始的字串,比如tm tomorrow就可以匹配,而tomorrow tm则不匹配,但如果使用:tm$ 则后者可以匹配而前者不能匹配。

      如果要匹配的字串可以出现在字符串的任意部分,那么可以直接写成:tm.

      2.2单词定界符(、B)

       继续上面的实例,使用tm可以匹配tm在字符串中出现的任何位置。即类似html、utmost中的tm也会被查找出来。但现在需要匹配的是单词tm,而不是单词的一部分。这时可以使用单词定界符,表示要查找的字串为一个完整的单词。如:tm

      大写的B意思和相反。它匹配的字串不能是一个完整的单,而是其他单词或字串的一部分。如:BtmB

     2.3字符类([])

     正则表达式是区分大小写的,如果要忽略大小写可使用括号表达式"[]"。只要匹配的字符出现在方括号内,即可表示匹配成功。但要注意,一个方括号只能匹配一个字符。

     例如:[Tt][Mm] 这种写法可以匹配字串tm的所有写法。

    2.4 选择字符(|)

       这个可以实现上面字符类的匹配模式,可以理为“或”

       如:T|tM|m 表示以字母T或t开头,后面接一个字母M或m.(使用"[]"和"|"的区别在于"[]"只能匹配单个字符,而"|"可以匹配任意长度的字串,上例可以写为:TM|tm|Tm|tM)

     2.5 连字符(-)

       如果用正则表达式来匹配变量的第一个字母,要写为:[a,b,c,d...A,B,C,D...] 这无疑是非常麻烦的,正则表达式提供了连字符来解决这个问题。上述可以写成[a-zA-Z]

     2.6 排除字符([^])

       匹配不符合命名规则的变量,正则表达式提供了"^"字符。如:

      [^a-zA-Z]该表达式匹配的就是不以字母和下划线(为什么下划线也可以,奇怪?)开头的变量名。

     2.7 限定符(?*+{n,m})

      ?   匹配前面的字符零次或一次  如:colou?r,该表达式可以匹配colour和color

      +  匹配前面的字符一次或多次  如:go+gle,该表达式可以匹配的范围从gogle到goo..gle

      *  匹配前面的字符零次或多次   如:go*gle,该表达式可以匹配的范围从ggle到goo...gle

      {n} 匹配前面的字符n次,如go{2}gle,该表达式只匹配google

      {n,m} 匹配前面的字符最少n次,最多m次,如employe{0,2},该表达式额可以匹配employm、employe和employee.

     2.8 点号字符(.)

      如遇到这样的试题:写出5~10个以s开头,t结尾的单词,这是由很大难度的。在正则表达式中可以通过点字符(.)来实现这样的匹配。点字符(.)可以匹配出换行符外的任意一个字符。如匹配以s开头,t结尾,中间包含一个字母的单词的格式为:^s.t$ 匹配的单词包括:sat,set,sit等。

     2.9 转义字符()

      转义字符就是将特殊字符(如".","?","")变为普通的字符。举一个IP地址的实例

     127.0.0.1 格式为:[0-9]{1,3}(.[0-9]{1,3}){3}

     在这里介绍下 括号字符(()) 这个表达式的作用是分组,也就是}(.[0-9]{1,3}) 这个是一组,而且要出现三次(因为后面的{3},懂了吧。。。)

     2.10 反斜线()

      1)将一些不可打印的字符显示出来。 如a 为警报   为退格 等等。。

      2)指定预定义字符集 d 任意一个十进制数字,相当于[0-9]; D 表示任意一个非十进制数字

      3)定义断言  单词定界符,用来匹配字符串中的某些位置,

     2.11反向引用

       依靠子表达式的“记忆”功能来匹配连续出现的字串或字母。如匹配连续两个it,格式为(it)1

       如果使用了多个分组,那么可以用"1","2"来表示每个分组(顺序是从左到右)如:([a-z])([A-Z])12

      2.12模式修饰符

      模式修饰符的作用是设定模式。也就是规定正则表达式应该如何解释和应用。

      1) i (?i)···(?-i)、(?i:···) 忽略大小写模式

      2) m                             多文本模式

      3) s                              单文本模式

      4) x                              忽略空白字符

      模式修饰符既可以写在正则表达式的外面,也可以写在表达式内。如忽略大小写模式,可以写为/tm/i、(?!)tm(?-i)和(?i:tm)3种格式。

    3.POSIX扩展正则表达式函数    http://www.jb51.net/shouce/php5/zh/ref.regex.html

     3.1 ereg()函数和eregi()函数

     bool ereg/eregi(string pattern,string string[, array regs]) 。。。。。

    4.PCRE兼容正则表达式函数     http://pan.baidu.com/share/link?shareid=3514025449&uk=1023925322&fid=4273194759

    算了这些函数用到的时候自己再查就好了。。。。

    作者:wj704    出处:http://www.cnblogs.com/wj204/   
  • 相关阅读:
    Asp.net MVC企业级开发(01)---Autofac
    3°、6°带高斯-克吕格投影
    使用html2canvas实现网页截图并嵌入到PDF
    中国UTM分区
    遇到乱码不怕不怕啦——计算机字符编码详尽讲解
    ArcGIS Engine10.2如何安装在 VisualStudio2013 开发环境下
    【OSG学习笔记之一:】OSG+VS2010+win7 64位环境搭建
    Python回调函数用法实例详解
    python下编译py成pyc和pyo
    ERDAS文件格式:IGE、IMG、RRD、AUX
  • 原文地址:https://www.cnblogs.com/wj204/p/3509086.html
Copyright © 2011-2022 走看看