正则表达式相关知识--修饰符,(),[],{},URL匹配
正则表达式中常用的模式修正符
1. i 不区分大小写(ignore):例如 /abc/i 可以匹配 abc, aBC, Abc
2. g 全局匹配(global)
如果不带g,正则匹配中字符串从左到右匹配,找到第一个符合条件的即匹配成功,并返回。
如果带g,则字符串从左到右,找到每个符合条件的,直到字符串结尾。
my test3. m 多行匹配(more)
表明可以进行多行匹配,但是这个修饰符只有当使用^和$模式时才会起作用,在其他模式中,是否加m都可以进行多行匹配。
^模式:
my test其他模式:
my test4. 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 test2. [] 是单个匹配 字符集、排除字符集,命名字符集。
[]是定义匹配字符范围的,比如[a-zA-Z0-9]表示相应位置的字符要匹配英文字符和数字。
圆括号可以匹配多个连续的字符,而一对方括号只能匹配单个字符。如下实例:
例1:
my test例2:[^abc] 表示找到这个位置上字符只能是除了abc之外的所有字符
my test例3:(\s*)表示连续空格的字符串,[\s*] 表示空格或者*号
my test my test3. {}一般是用来匹配的长度。
例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