0%

Regular_expression

正则表达式(Regular expression)简介

简单来说正则表达式就是一种字符串的匹配模式

基于这个模式可以从一个串或许多串当中匹配或者是捕获需要的字符串

元字符

. 匹配除换行符以外的任意字符
* 重复前面的子表达式0次或多次
+ 重复前面的子表达式1次或更多次
? 重复前面的子表达式0次或一次
^ 匹配字符串的开始
$ 匹配字符串的结束
{n} 重复n次
{n,m} 重复n到m次
\b 匹配单词的开始或结尾在单词边界
\d 匹配数字,“\D”匹配任意非数字字符
\s 匹配任意空白符,“\S”匹配任意非数字字符
\w 匹配任意字母、数字或下划线的标示符字符
[a-z] 匹配指定范围内的任意字符
[^a-z] 匹配任何不在指定范围内的字符

正则表达式验证的网站(online regular tester)来举些例子来更好地理解正则表达式的用法

例:regex101.com(可以进行是否大小写敏感等设置)

例1:

REGULAR EXPRESSION

hello

TEST STRING

Helllllllllo

会显示0 match;

但是把hello 改成 hel+o之后(重复前面的子表达式一次或更多次,见上表)

就会显示1 match 了

例2:目的是把所有单词都匹配出来

REGULAR EXPRESSION

[a-zA-Z{1,}]

TEST STRING

I am 1 test sentence.I have 500 books.

显示7 matches

例3:把数字匹配出来

REGULAR EXPRESSION

[0-9]{1,}或\d{1,}

TEST STRING

I am 1 test sentence.I have 500 books.

显示2 matches

例4:匹配浮点数,(需要把小数点匹配出来)

REGULAR EXPRESSION

\d{1,}.\d{1,}

1 match

假如在一封email里要获取IP地址

只是简单说一下IP地址的获取

这里不管数字的范围,IP地址是有4个十进制数,每个范围是0-255,中间是用.来分隔的,只是匹配三位长度的数字

REGULAR EXPRESSION

\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

重复部分较多,可以把他括起来组成一个分组group 重复三次

(\d{1,3}\.){3}

TEST STRING

192.168.1.32

1 match