牛逼的正则表达式(1)---匹配语法

来源:互联网 发布:a计划软件白金版 编辑:程序博客网 时间:2024/06/02 08:45

一、题记

以前很少接触到文字搜索匹配的功能,所以正则表达式也是用的少,由于最近在做一个工具,其中用到了正则表达式,所以写篇博客巩固学到的知识,真是不学不知道,一学吓一跳,好牛逼的正则啊。


二、基本概念

正则表达式:是一些由字符和特殊符号组成的字符串,它们描述了这些字符和字符的某种重复方式,因此能够按照某种模式匹配一个有相似特征的字符串集合,在代码中常写为regex、regexp、RE。
在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。


三、使用规则

元字符 说明 使用样例 \ 转义字符 \n匹配换行 re1|re2 匹配正则表达式re1或re2 foo|bar .点 匹配任何字符(换行符除外) b.b ^ 匹配字符串的开始 ^Dear $ 匹配字符串的结尾 com$ * 匹配前面出现的正则表达式零次或多次 [A-Za-z0-9]* + 匹配前面出现的正则表达式一次或多次 [a-z]+\.com ? 匹配前面出现的正则表达式零次或一次 goo? {N} 匹配前面出现的正则表达式N次 [0-9]{3} {M,N} 匹配前面出现的正则表达式M~N次 [0-9]{5,9} […] 匹配字符组里出现的任意一个字符 [aeiou] [x-y] 匹配从字符x到y中的任意一个字符 [A-Za-z] [^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符 [^a-z] (…) 匹配封闭号中正则表达式,并保存为子组 ([0-9]{3})?,f(oo \d 匹配任何数字,和[0-9]一样,(\D是\d的反义,任何非数字) data\d+.txt \w 匹配任何数字字母,和[A-Za-z0-9]一样,(\W是\w的反义) \w+ \s 匹配任何空白符,(\S是\s的反义) \b 匹配一个单词边界,(即正则表达式的“匹配”有两种概念,一种是匹配字符,一种是匹配位置,这里的\b就是匹配位置的) “er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。 \B 匹配非单词边界 “er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
0 0