正则表达式的一些语法
今天刷题遇到了一些正则表达式的语法问题, 就查了一些资料,总结了一下常用的语法。
参考: https://www.runoob.com/regexp/regexp-syntax.html
限定符 * + ? {n} {n,} {n,m}
- ‘*’、‘+’、‘?’表示一个或一序列字符重复出现的次数
- ab* :* 号代表字符可以出现 0、1、多次, 表示一个字符串有一个a后面跟着零个或若干个b;
- ab+ : + 号代表前面的字符至少出现1次(1次或多次), 表示 一个字符串有一个a后面跟着至少一个b或者更多;
- ab? : ?号代表前面的字符最多只可以出现1次(0次或1次), 表示一个字符串有一个a后面跟着零个或者一个b;
-
- a?b+$ :表示在字符串的末尾有1个或者0个a后面跟着1个 或者几个b;
- { }大括号表示重复次数的范围;
- {n},匹配确定的n次;
- {n, },至少匹配n次;
- {n,m},匹配n~m次;
- 匹配一个正整数: /[1-9][0-9]/ [1-9]设置第一个数字不是0,[0-9] 表示任意多个数字;
- 匹配1-99的正整数表达式:/[1-9][0-9]?/ 或 /[1-9][0-9]{0,1}/
特殊字符 ^ ( ) * + ? . [ { | \ $
- 需要使用转义符,即将反斜杠字符\放在他们前面,^ ( ) * + ? . [ { | \ $
非打印字符 \f \n \r \s \S \t \v
- 换页(\f),换行(\n),回车(\r),空白字符(\s,等价于[\n\f\r\t\v]),非空白字符(\S ,等价于[^\f\n\r\t\v] ),制表符(\t),垂直制表符(\v)
定位符 ^ $ \b \B
- \b 匹配一个单词边界 \B 非单词边界匹配