tanxukun / interview

interview record.
0 stars 0 forks source link

RegExp #9

Open tanxukun opened 1 year ago

tanxukun commented 1 year ago

记录

\d 匹配0-9的数字; \D 任何非数字字符(\字母大写都表示非) . 匹配任意单个字符(字母、数字、空格等,换行符\r \n除外) [] 匹配特定字符, 如[abc]等同于(a|b|c); [^] 排除特定字符, 如[^abc]排除abc; [a-z] 表示a-z的字符范围,[A-Za-z0-9]匹配英文文本 {} 指定每个字符的重复次数,如a{3} a{1,3} [wxy]{5} .{2,6} a{n,} + 表示一个字符至少出现一次, \d+ 至少有一个数字 [wsx]+ w或s或x至少出现一次 * 匹配任意数量的字符 \d 任意数量的数字 . 任意个字符 a* a出现0-n次 ? 表示可选 空白符 () \t制表符 \n换行符 \r回车 \s 任意空白符 ^ 一行的开始 $ 一行的结束 () 用来捕获括号里面的内容 ^(IMG\d+.png)$ 匹配完整的文件名,^(IMG\d+).png$ 匹配不带扩展名的文件名 \w 相当于[A-Za-z0-9] \W 相当于[^A-Za-z0-9] (?=exp) 指定后缀 (?<=exp) 指定前缀 (?!exp) 指定后缀不能是 (?<!exp) 指定前缀不能是 (?:exp) 不生成捕获组 *? 重复任意次,但尽可能少重复 +? 重复任意次,但尽可能少重复 ?? 重复任意次,但尽可能少重复 {n,m}? 重复任意次,但尽可能少重复 {n,}? 重复任意次,但尽可能少重复 /g 全局 /m 多行 /i 忽略大小写

tanxukun commented 1 year ago

特殊点

/g 有个lastIndex的逻辑,如果没匹配到东西会重置为0,如果匹配到,下一次匹配lastIndex为从上一次匹配结束的位置开始

tanxukun commented 1 year ago

RegExp相关方法和属性

exec(str: string): RegExpExecArray | null 返回匹配结果

test(str: string): boolean

source: string 不包含/ /ig 如/tff/ig.source // tff

global: boolean 是否全局匹配/g

ignoreCase: boolean 是否忽略大小写/i

multiline: boolean 是否多行匹配

lastIndex: number 上一次匹配结束的index+1即下一次匹配的起始点,只在global为true时有效

所有关于reg相关的方法