正则表达式
正则表达式作为常见工具,常常能够给日常工作提高效率。同时也给一个复杂问题另外解题思路。正则表达式见长于字符串的查找、替换等处理工作。本专栏主要介绍常见以及高级表达式用法。
爱此清夜雨
--
展开
-
认识正则表达式(一)
这个文章系列文章主要会设计到以下一些知识点,一般网上查到到无非一些现成的例子,而这些例子要么不完全符合自己的需求,要么根本就是有错误。属于正则表达式的基础用法,而只有深入了解原理之后,才能随心所欲改造现有的表达式或者自己创造自己考虑周全的表达式。原创 2016-10-26 23:09:14 · 420 阅读 · 0 评论 -
正则表达式-重复匹配(二)
在前面一章中,讲了元字符的使用,前面没有明确说明,那就是每个元字符匹配一个字符,也就是说[\d]匹配任意一个数字。那么假设我想匹配三位数字怎么办,当然可以写成 \d\d\d 这种形式,但是要是我想匹配10位数字呢,岂不是要写10次\d。这样写当然也能解决问题,但是不够优雅,也不够简便。那么如何解决这个问题呢,这就是本章要讲到的重复匹配问题原创 2016-10-27 23:01:27 · 2646 阅读 · 0 评论 -
正则表达式-位置匹配(三)
有时候我们希望不光能匹配我们想要的字符串,还希望可以对位置进行匹配。比如希望找到单个字母a,而不希望找到相关以a为开头的单词,如abundant。此时就需要使用位置匹配,下面我们来介绍最简单的位置匹配符 \b some word\b(单词边界) 如使用\ba\b正则表达式,此时,仅匹配a单词字母,而不会匹配包含a的单词,此种用法还包含一些衍生的使用,如查找包含以ab开头的单词,就可以原创 2016-11-09 21:25:33 · 1537 阅读 · 0 评论 -
正则表达式-子表达式(四)
从这一节开始,开始涉及到正则表达式的一些高级用法,前面只是一些基础知识是基本块,构成了接下来的这些高级的使用方法。简单来讲,子表达式就是使用括号包裹起来的正则表达式而已。而本章的子表达式在后面的一致性、回溯查找,前后查找,嵌入条件和替换当中都将发挥重要作用。那么现在我们来学习下这个重要子表达式概念。假设我们需要查找到正确的ip地址信息,而不是非法的。原创 2016-11-16 22:33:55 · 3653 阅读 · 0 评论 -
正则表达式-回溯引用,前后一致匹配(五)
前面一节所讲到的子表达式是这一章的基础,因此,如果对子表达式没有了解的可以参考前面一张。这一章讲回溯引用,简单来说,回溯引用就是前后要一致性匹配。比如常见的HTML语言就是这样的。比如如下HTML源代码<html><head><title></title></head><body></body></html>HTML语言的特点是标签成对出现,既前面有后面一定要有一个作为闭合,否则,这个就原创 2016-11-27 19:04:52 · 2294 阅读 · 0 评论 -
正则表达式-前后查找(六)
前面讲到的正则表达式都是如何匹配表达式所表达的意思,如[a-z]+是匹配1个以上a-z的字母。今天我们讲到的是前后查找的例子,首先我们讲到向前查找的语法: (?=表达式)我们举一个例子,假设我们在如下列表中想获取协议名http://ftp://https://按照我们一般的写法是 [a-z]+:这样写存在一个问题,就是会匹配“:”本身。这样就不是想要的结果,如果不想要匹配冒号本身,就需要原创 2016-11-29 20:12:21 · 1301 阅读 · 2 评论 -
正则表达式-嵌入条件(七)
本次将结束这个系列,最后一篇文章。相对而言,嵌入条件在正则表达式中使用很少,甚至很多语言不支持嵌入条件这种写法,不过最为了解,本章讲简短说明一下嵌入条件在正则表达式中如何使用。嵌入条件的表达式按照书上的说明是这样的: ?(backer-ference)true-regex|false-regex我们这里举一个例子,建设匹配美国的电话号码的例子:123-456-7890(123)456-78原创 2016-11-29 21:06:39 · 2321 阅读 · 0 评论