正则表达式初探

    科技2022-07-16  126

    1. 正则表达式(Regexps)由表达式(expressions)、量词(quantifiers)和断言(assertions)组成。

    2. 如:[0-9]{1, 2},其中[0-9]就是表达式,表示0-9中任意一个数字,{1, 2}就是量词部分,表示表达式出现1~2次;

    3. 如:^[0-9]{1, 2}$,其中^就是断言,表示必须从字符串开始进行匹配,$也是断言,表示必须匹配到字符串结尾;

    4. 对于常用的表达式,可用一些符号表示,例如 \d 可替代[0-9];而{1, 1}可由表达式本身代替,{0, 1}表示可选的,可由 ?代替,因此正则表达式:^[0-9]{1, 2}$,也可以表达为:^\d\d?$ 

    5. 正则表达式中的表达式可以是各种字符和字符组,而一些常用的字符集可以使用一些缩写来表示,在使用时候可再具体查找;

    6. 正则表达式中的量词的使用情况如下表所示,其中E代表一个表达式,一个表达式可以是一个字符,或者一个字符集的缩写,或者在方括号中的一个字符集,或者在括号中的一个表达式。

    量词含义E?匹配0次或者1次,表明E是可选的,E?等价于E{0, 1}E+匹配1次或者多次,E+等价于E{1,},例如,0+匹配0,00,000等E*匹配0次或者多次,等价于E{0,}E{n}匹配n次,等价于E{n, n},例如x{5}等价于x{5,5},也等价于xxxxxE{n,}匹配至少n次E{,m}匹配至多m次,等价于E{0, m}E{n, m}匹配至少n次,至多m次

    7. 正则表达式中的断言

    断言含义^标志着字符串的开始,如果要匹配"^"就要使用"\\^"$标志着字符串的结尾,如果要匹配"$"就要使用"\\$"\b一个单词的边界\B一个非单词的边界,当"\b"为false时,它为true(?=E)表达式后面紧跟着E才匹配,例如,const(?=\s+char)匹配const且其后必须有char(?!E)表达式后面没有紧跟着E才匹配,例如,const(?!\s+char)匹配const但其后不能有char
    Processed: 0.008, SQL: 8