【语法基础】--正则表达式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23018459/article/details/80323566

一、入门

1.查找单词hi

正则表达式:/bhi/b
/b 单词的开头或结尾,也就是单词的分界处


2.hi后面不远处跟着一个Lucy

 正则表达式:/bhi/b.*/bLucy/b
. 匹配除换行符以外的任意字符
*前边的内容可以连续重复使用任意次
.*连在一起就意味着任意数量的不包含换行的字符


3.以0开头,然后是两个数字,然后是一个连字号“-”,最后是8个数字:
正则表达式:0/d/d-/d/d/d/d/d/d/d/d
/d 匹配数字
也可以这样写这个表达式:0/d{2}-/d{8}


二、元字符

1.以字母a开头的单词,先是某个单词开始处(/b),然后是字母a,然后是任意数量的字母或数字(/w*),最后是单词结束处(/b):
正则表达式: /ba/w*/b
/w 匹配字母或数字或下划线或汉字

 

2. 1个或更多连续的数字
正则表达式:/d+
*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次


3. 6个字符的单词
正则表达式:/b/w{6}/b


4. QQ号必须为5位到12位数字
正则表达式:^/d{5,12}$
^ 匹配字符串的开始
$ 匹配字符串的结束


三、字符转义

要查找/本身

正则表达式://
/ 字符转义


四、重复

*重复零次或更多次+重复一次或更多次?重复零次或一次{n}重复n次{n,}重复n次或更多次{n,m}重复n到m次

 

五、字符类

[aeiou] 匹配任何一个英文元音字母

[.?!]      匹配标点符号(.或?或!)

[0-9]     一位数字

[a-z0-9A-Z_]  /w(如果只考虑英文的话)

/(?0/d{2}[) -]?/d{8}  像(010)88886666,或022-22334455,或02912345678等
首先是一个转义字符/(,它能出现0次或1次(?),然后是一个0,后面跟着2个数字(/d{2}),然后是)或-或空格中的一个,它出现1次或不出现(?),最后是8个数字(/d{8})。


六、分支语句

| 把不同的规则分隔开
1. 一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(如:0376-2233445)
正则表达式:0/d{2}-/d{8}|0/d{3}-/d{7}


2. 匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔

    (0710)-12345678  或   (0710)-12345678 或0710-12345678或 071012345678
正则表达式:/(0/d{2}/)[- ]?/d{8}|0/d{2}[- ]?/d{8}


3.美国邮编的规则是5位数字,或者用连字号间隔的9位数字

正则表达式:/d{5}-/d{4}|/d{5}



七、分组

() 分组

1. 256.300.888.999

正则表达式:(/d{1,3}/.){3}/d{1,3}

/d{1,3}匹配1到3位的数字(/d{1,3}/.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(/d{1,3})


2.IP地址:每个数字都不能大于255

正则表达式:((2[0-4]/d|25[0-5]|[01]?/d/d?)/.){3}(2[0-4]/d|25[0-5]|[01]?/d/d?)


八、反义:查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外

/W   匹配任意不是字母,数字,下划线,汉字的字符
/S    匹配任意不是空白符的字符
/D    匹配任意非数字的字符
/B    匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符


/S+     匹配不包含空白符的字符串。
<a[^>]+>匹配用尖括号括起来的以a开头的字符串

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页