码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式学习笔记(一)

时间:2015-06-08 19:57:04      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:正则表达式

  • 什么是正则表达式

    在编写处理字符串的时候,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用来描述这些规则的工具,换句话说,正则表达式就是记录文本规则的代码。


  • 正则表达式语法递进学习

        (1)       关于大小写,正则表达式处理工具会有控制的机制,人为可调,后面会讲。

        (2)       \b

    这是属于正则表达式里面的所谓元字符。看看应用,假设想要在某段文本中查找”men”这个字符串。若是没有使用\b,那么结果是这样的:

技术分享

    如果使用了\b的话,结果就是这样:

技术分享

        \b匹配的是单词边界,不匹配任何字符。其中的单词是指另外一个元字符\w所规定的字符串,具体有哪些呢?

    这个是看情况的,在支持ASCII码的语言中,\w那就是等价于【a-A-9_】;而在Unicode的语言中,默认情况下,除了以上那些,还包括汉字,全角数字等。

        (3)       “.” “*”

    如果要查找以”men”开头,以”Lucy”结尾的字符串,怎么做呢,可以如下操作,结果如下:

技术分享

    “.” ”*”都是属于元字符。

    “.”匹配除了换行符以外的任意一位字符。

    “*”不代表字符和位置(不要把它和windows系统里面的查询的通配符论比),在正则表达式里面,它表达的是*前边的内容可以连续重复使用任意次以上。

    上述图片里面的意思就是以”men”开头,”Lucy”结尾,中间有任意数量但是不能有换行的字符的字符串。所以图片蓝色框框内的字符串没有连起来,因为换行了。”*”可以匹配的是0个或者更多个,有一个符号作用与*相同,那就是”+”,但是它匹配的是1个或者更多个。

        (4)       “\d” “-“

    若是想要查找数字字符串怎么办?使用”\d”

    “\d”也是元字符,表示一位数字(0~9)。

    “-”不属于元字符,只用来匹配自己,所以可以用来匹配中横线或者减号。

如下图所表示:

技术分享

    但是输入这么多的符号,非常的麻烦,于是,另外的一个方法解决这个麻烦:

    技术分享

    相必已经看到,在\d的后面多了{2},其中2就表示是数目。

        (5)       测试工具,这里使用的测试工具是从网上下载的RegexBuddy,可以用来做正则表达式的练习和测试。

        (6)       \w

    再来说说\w,前面已经说过,\w表示的是一个匹配单词的元字符,\w也可以用{数字}来表示这个单词有几位。例如\b\w{4}\b:匹配4个字符的单词。

        (7)       其它常用元字符

代码

详解

\s

匹配任意的空白符

^

匹配字符串的开始

$

匹配字符串的结束

    说明:\s匹配的空白符包括空格,制表符(tab)换行符,中文全角空格。

            符号^$类似于\b,下面是一个实例:

技术分享

    其中,{5,12}{5}这种形式的扩展用法,{5}表示必须是5个,而{5,12}则是表示可以为5~12个数,重复方法小结:

代码

详解

*

重复0次或者更多次

+

重复1次或者以上

重复0次或者1

{n}

重复n

{n,}

重复n次或者更多次

{n,m}

重复n次到m


正则表达式学习笔记(一)

标签:正则表达式

原文地址:http://3994129.blog.51cto.com/3984129/1659670

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!