正则表达式相关知识--修饰符,(),[],{},URL匹配

2021-05-07  本文已影响0人  Amy1234567

正则表达式中常用的模式修正符

1. i  不区分大小写(ignore):例如 /abc/i 可以匹配 abc, aBC, Abc

2. g 全局匹配(global)

如果不带g,正则匹配中字符串从左到右匹配,找到第一个符合条件的即匹配成功,并返回。

如果带g,则字符串从左到右,找到每个符合条件的,直到字符串结尾。

my test

3. m 多行匹配(more)

表明可以进行多行匹配,但是这个修饰符只有当使用^$模式时才会起作用,在其他模式中,是否加m都可以进行多行匹配。

^模式:

my test

其他模式:

my test

4. s 特殊字符. 中包含换行符

默认的特殊字符圆点. 是匹配除换行符\n 之外的任何单字符,加上s后,圆点. 也可以匹配换行符

my test

正则表达式(), [], {}的区别

1. 圆括号()是组,主要应用在限制多选结果的范围、分组,捕获文本,环视,特殊模式处理。

表达式中有几个()就有几个相应的匹配字符串。

例1:(abc|bcd|cde),表示这一段是abc、bcd、cde三者之一,顺序也必须一致

my test

例2:(abc)?  表示这一组要么一起出现,要么不出现,出现那则按顺序出现

例3:a(?=bbb)顺序环视 表示a后面必须紧跟3个连续的b

my test

例4:(?i:xxxx)不区分大小写   (?s:.*)跨行匹配,可以匹配回车符

my test

2. [] 是单个匹配 字符集、排除字符集,命名字符集。

[]是定义匹配字符范围的,比如[a-zA-Z0-9]表示相应位置的字符要匹配英文字符和数字。

圆括号可以匹配多个连续的字符,而一对方括号只能匹配单个字符。如下实例:

例1:

my test

例2:[^abc] 表示找到这个位置上字符只能是除了abc之外的所有字符

my test

例3:(\s*)表示连续空格的字符串,[\s*] 表示空格或者*号

my test my test

3. {}一般是用来匹配的长度。

例1:\s{3}表示匹配三个空格,\s{1,3}表示匹配1到3个空格

my test

例2:(0-9)匹配'0-9'本身

my test

例3:[0-9]*匹配数字(注意后面有*,可以为空)[0-9]+匹配数字(注意后面有+,不可以为空)

my test

在开发过程中,注意不要在字符后面直接使用*,那样不会不匹配的情况

my test

例4:[0-9]{0,9}表示长度为0到9的数字字符串

my test

匹配URL的正则表达式:/^(https?|ftps?):\/\/(www)\.([^\.\/]+)\.(com|cn|org)(\/[\w-\.\/\?\%\&\=]*)?/i

my test

参考资料:

https://www.cnblogs.com/langren1992/p/9782191.html

上一篇下一篇

猜你喜欢

热点阅读