正则表达式(一)

来源:互联网 发布:什么程序员工资最高 编辑:程序博客网 时间:2024/06/13 23:53

最近看一本《精通正则表达式》,感觉非常有意思就总结一下里面的基础部分。

正则表达式:

个人理解就是用来匹配字符的一种语言,类似于网上一个一个笑话“一个人学打麻将,都说看多了就会了,怎样让一个人迅速学会打麻将,最简单的办法就是把胡牌的公式写出来,遇到类似这个公式的牌,你就赢了”。这个表达式也是类似,使用一些类似公式的东西来找出你想要的文本字符串等。

基本术语

  • 正则:全名是正则表达式(regular expression),简称正则(regex)
  • 匹配:一个正则匹配一个字符串,其实指的是这个正则表达式能在字符串中找到匹配的文本
  • 元字符:一个字符是否属于元字符取决于具体的实际情况,比如.表示匹配所有的字符,但是.就表示匹配.本身
  • 流派:不同的元字符在不同的流派中是有差别的,需要具体情况具体对待
  • 子表达式:一般指的是正则的一部分,例如括号内的表达式或用|分隔开的分支

快速入门专用通道

eg1:我们经常在电脑资源管理器中查找某一个txt文件的时候,经常在搜索窗口用*.txt文件来表示所有的txt文件。这里的*表示的是所有的意思,在正则中用.来表示所有的东西,俗称通配符
eg2:查找单词grey,但是记不清楚到底是grey还是gray了,这时候可以用这个来表示gr(e|a)y,这个式子就是一个正则表达式用来表示选择其中的一个就行,这时候往往能找到你想要的答案。

常用元字符

元字符 名称 匹配对象 . 点号 匹配任意单个字符 [···] 字符组 匹配单个列出的字符 [^···] 排除型字符组 匹配单个未列出的字符 ? 问号 允许匹配一次,但非必须 * 星号 匹配任意多次,可以不匹配 + 加号 至少匹配一次,没有上限 {min,max} 区间量词 至少需要min次,至多max次的上一个字符可以匹配 ^ 脱字符 匹配一行开始的位置 $ 美元符 匹配一行结束的位置 \< 单词分界符 匹配单词开始的位置,相当于单词里面的^ > 单词分界符 匹配单词结束的位置,相当于单词里面的$ | 分隔符 匹配任意分隔的表达式 (···) 括号 限定多选结构范围,为反向引用“捕获”文本 \1,\2,… 反向引用 匹配之前的第一、第二组括号内的字表达式匹配的文本

思考题

如何用正则表达式来表示简单的一个网址URL,答案在下篇博客揭晓,欢迎大家留言,给出您的答案!

0 0