正则简介
正则表达式,又称规则表达式,英文名为Regular Expression,在代码中常简写为regex、regexp或RE,是计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。
入门
先看一个例子,Hi! Terry, This is a test.
如果要查找这句话中的test
,可以用正则test。假如要查找is
,简单的is匹配就会出把This中的is也匹配出来,如何精确匹配is单词呢?这时我们就要使用\b
,\b是正则表达式中的一个特殊代码(元字符),代表单词的开头或者结尾,这里匹配is单词就可以这样写\bis\b
。
在线测试正则地址:点击进入
元字符
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
[a-z] | 字符范围。匹配指定范围内的任意字符。例如,'[a-z]’ 可以匹配 ‘a’ 到 ‘z’ 范围内的任意小写字母字符。 |
[^a-z] | 匹配任何不在指定范围内的任意字符。例如,'[^a-z]’ 可以匹配任何不在 ‘a’ 到 ‘z’ 范围内的任意字符。 |
x|y | 匹配 x 或 y。例如,’z|food’ 能匹配 “z” 或 “food”。'(z|f)ood’ 则匹配 “zood” 或 “food”。 |
() | 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 |
实例分析
了解了上面常用元字符后,我们来看一个匹配ip地址的正则表达式(\d{1,3}\.){3}\d{1,3}
,首先分析\d{1,3}
这是匹配1到3位的数字,(\d{1,3}\.){3}
这是匹配1到3位的数字加上一个标点.
重复3次,最后加上1到3位的数字\d{1,3}
转载请注明:Terry's blog » 正则表达式快速入门