04-正则表达式

    xiaoxiao2025-01-16  10

    正则通常由两部分组成:元字符+限定符

    元字符:代表能代表哪些字符

    限定符:修饰前面元字符数量,只对他前面一个元字符起作用

    1、常用元字符

    元字符

    意义

    .

    匹配除换行符以外的任意字符

    \.

    表示点,需转义

    \n

    换行

    \w

    匹配字母或数字或下划线或汉字

    \s

    匹配任意的空白符(包括空格、换行、回车等)

    \d

    匹配数字

    \b

    匹配单词的开始或结束

    ^

    匹配字符串的开头

    $

    匹配字符串的结束

    [a-z]

    小写英文字母

    [0-9]

    数字

    [asd]

    asd三个字符里取任意一个

    [\u4e00-\u9fa5]

    汉字

     [^X]

    取所有,除去X

     

    2、常用限定符

    限定符

    意义

    *

    重复0次或更多次(0个以上)

    +

    重复1次或更多次(1个以上)

    重复0次或1次(0个或1个)

    {n}

    重复n次数

    {n,m}

    重复n到m次

    {n,}

    重复n次以上

    *?

    重复任意次,但尽可能少重复

    +?

    重复1次或更多次,但尽可能少重复

    ??

    ??重复0次或更多次,但尽可能少重复

     

    3、正则举例

    1)待匹配字符集asdaadaaaeaw

    ① a*

    ② a+

    ③ a?

    ④ a*?

    ⑤ a+?

    ⑥ a??

    2)待匹配字符集abaabaseb

    3)uuid正则

    [0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}

    4)[^|]+

    取出所有除去竖划线|如”1|af516ui-f”,取出2处匹配,匹配结果为1,af516ui-f

    5)([\s\S]*)

    匹配所有

    6)常用正则

    可参考http://tool.oschina.net/regex/#

    ①邮箱

    ^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-z]{2,}$

    ②匹配url

    [a-zA-z]+://[^\s]*

    ③匹配(年-月-日)日期格式

    ([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))

    ④匹配空白行

    \n\s*\r

    最新回复(0)