正则表达式的一些符号基础和实例解析

注意验证的时候不要出现什么中文括号之类的 看又看不出 会坑死自己)

1.rub+b

可以匹配rubb / rubbb 但不能匹配 rubab

所以只能匹配rub+(任意的(大于1个)b)

2.rub*b

匹配rub+(任意数量的b可以为0)

3.rua?b

?代表前面的字符最多只可以出现1次

也就是只匹配ruab或者rub

4.转义字符‘/

5.{n},{n,}

n 是一个非负整数。匹配确定的 n 次(注意是指前面的字符)

比如g{3}nb只匹配gggnb

{n,}

a{2,}g 匹配2个以上的a +g

a{2,4}g 匹配2个到4个a+g

6.‘.’任意字符

7.‘^’从开始处的文本开始匹配 ‘$’匹配结束处

8.ter 以空格为一个单词 匹配以ter结尾的单词

Chapter aater 12ddsdater 则匹配到3个

9.w 相当于([0-9a-zA-Z_]) 匹配字母或下划线或汉字(甚至还包括一些希腊字母,俄文的字母)  

10.d匹配数字

11.s匹配任意的空白符

12./g 表示该表达式将用来在输入字符串中查找所有可能的匹配,返回的结果可以是多个。如果不加/g最多只会匹配一个

13./i  表示匹配的时候不区分大小写

14./m多行匹配 比如说出现/n的换行符时

15./s 单行匹配

16./x 忽略空白

17.‘1’ 匹配的是 所获取的第1个()匹配的引用。

18.‘2’ 匹配的是 所获取的第2个()匹配的引用。

结合实例

(1)匹配重复字符

var str = "Is is the cost of of gasoline going up up";

var patt1 = /([a-z]+) 1/ig;

解析: ([a-z]+) 从小写字符串开始匹配

1 重复匹配一遍([a-z]+) 比如 前面匹配过的字符串abc 他需要再出现abc一次才匹配

所以我们先用 ([a-z]+) 1 如图测试

 

只匹配到一次重复

/ig则是(全文查找、忽略大小写)

匹配结果为 Is is  of of up up

(2)匹配网站格式

(w+)://([^/:]+)(:d*)?([^# ]*) (这里可能包括中文括号等字符,测试请自行转化)

解析我们拆成几部分

1.(w+):// 至少一个的字母或下划线或汉字+:// => 比如www://

2.([^/:]+)仍以数量的:开头的匹配 => :aa:bb:cc =>匹配aa ,bb,cc

3.(:d*)? 匹配最多一个‘:’+数字 :80=> 匹配为  :80 (匹配端口)

4.([^#]*) 匹配任意字符多次(文件路径)。

 (3)匹配Ascii码大于255

[^x00-xFF]

原文地址:https://www.cnblogs.com/RikuBlog/p/9591553.html