当前位置: 首页 > 科技观察

一张思维导图,让正则表达式不再难懂

时间:2023-03-12 21:03:54 科技观察

一张让正则表达式不再难懂的思维导图自由字符:\n(换行符)、\t(制表符)、\\(\本身)和\^...(\^等具有特殊功能的符号必须自己匹配就转义)标准字符集注意区分大小写,大写表示相反意思,匹配相反表示不匹配\d任意数字,0~9\w任意字母、数字、汉字或下划线,A~Z、a~z、0~9、_和任意汉字\s任意空白字符,包括空格、制表符、换行符。小数点可以匹配任意字符,除了换行符(如果要匹配包括“\n”在内的所有字符,一般用[\s\S])自定义字符集[]方括号匹配方式可以匹配中的任意字符方括号,^表示否定[ab5@]匹配“a”或“b”或“5”或“@”[^abc]匹配除a、b、c之外的任何字符“k”[^A-F0-3]匹配“A”-“F”,“0”-“3以外的任何字符”量词(Quantifier)修饰前面的表达式。如果要修改多个表达式,用()包裹表达式{n}重复表达式n次{m,n}表达式最少重复m次,最多重复n次贪心模式(默认)匹配匹配的最长字符串非贪心模式(在量词后加?示例:{m,n}?)匹配匹配{m,}的最短字符串表达式重复至少m次?匹配表达式0次或1次,相当于{0,1}+表达式至少出现一次,相当于{1,}*表达式没有出现或任何一次出现,相当于{0,}字符边界零宽度:匹配的不是字符而是位置。满足一定条件的位置^匹配字符串的开头$匹配字符串的结尾\b匹配一个词的边界,当前位置前后的字符不都是\w预搜索(零宽assertion,look-around)零宽度:匹配的不是字符而是位置,满足一定条件的位置(?=exp)断言表达式exp(?!exp)可以匹配到where的位置之后itappearancebehindthepositionbehindoccurrencecannotmatchtheexpressionexp(?<=exp)断言它出现的位置可以匹配表达式exp(?