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

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

作者: Amy1234567 | 来源:发表于2021-05-07 17:33 被阅读0次

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

    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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/infudltx.html