You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
正则:/(\d{4})-(\d{2})-(\d\d)/
匹配格式为yyyy-MM-dd的日期,月和日分别采用了\d{2}和\d\d这两种写法
let regx = /(\d{4})-(\d{2})-(\d\d)/;
let a = "2017-08-03";
let res = a.match(regx);
//0:"2017-08-03"
//1:"2017"
//2:"08"
//3:"03"
元字符
[ ] ( ) { } . * + ? ^ $ \ |
字符集
字符集也叫做字符类.
方括号用来指定一个字符集.
在方括号中使用连字符来指定字符集的范围.
在方括号中的字符集不关心顺序.
例如, 表达式
[Tt]he
匹配the
和The
.否定字符集
一般来说
^
表示一个字符串的开头, 但它用在一个方括号的开头的时候, 它表示这个字符集是否定的.例如, 表达式
[^c]ar
匹配一个后面跟着ar
的除了c
的任意字符.重复次数
后面跟着元字符
+
,*
or?
的, 用来指定匹配子模式的次数.这些元字符在不同的情况下有着不同的意思.
*
号匹配 在*
之前的字符出现大于等于0
次.例如, 表达式
a*
匹配以0或更多个a开头的字符, 因为有0个这个条件, 其实也就匹配了所有的字符. 表达式[a-z]*
匹配一个行中所有以小写字母开头的字符串.*
字符和.
字符搭配可以匹配所有的字符.*
.*
和表示匹配空格的符号\s
连起来用, 如表达式\s*cat\s*
匹配0或更多个空格开头和0或更多个空格结尾的cat字符串.+
号匹配+
号之前的字符出现 >=1 次.例如表达式
c.+t
匹配以首字母c
开头以t
结尾,中间跟着任意个字符的字符串.在正则表达式中元字符
?
标记在符号前面的字符为可选, 即出现 0 或 1 次.例如, 表达式
[T]?he
匹配字符串he
和The
.在正则表达式中
{}
是一个量词, 常用来一个或一组字符可以重复出现的次数.例如, 表达式
[0-9]{2,3}
匹配最少 2 位最多 3 位 0~9 的数字.特征标群
特征标群是一组写在
(...)
中的子模式. 例如之前说的{}
是用来表示前面一个字符出现指定次数. 但如果在{}
前加入特征标群则表示整个标群内的字符重复 N 次. 例如, 表达式(ab)*
匹配连续出现 0 或更多个ab
.我们还可以在
()
中用或字符|
表示或. 例如,(c|g|p)ar
匹配car
或gar
或par
.或运算符
或运算符就表示或, 用作判断条件.
例如
(T|t)he|car
匹配(T|t)he
或car
.转码特殊字符
反斜线
\
在表达式中用于转码紧跟其后的字符. 用于指定{ } [ ] / \ + * . $ ^ | ?
这些特殊字符. 如果想要匹配这些特殊字符则要在其前面加上反斜线\
.例如
.
是用来匹配除换行符外的所有字符的. 如果想要匹配句子中的.
则要写成\.
以下这个例子\.?
是选择性匹配.
简写字符集
[a-zA-Z0-9_]
[^\w]
[0-9]
[^\d]
[\t\n\f\r\p{Z}]
[^\s]
\r\n
),用来匹配 DOS 行终止符捕获组
捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部。捕获组有两种形式,一种是普通捕获组,另一种是命名捕获组,通常所说的捕获组指的是普通捕获组
普通捕获组
反向引用
则表达式中,对前面捕获组捕获的内容进行引用,称为反向引用;
由于JavaScript中不支持命名捕获组,所以对于捕获组的引用就只支持普通捕获组的反向引用和$number方式的引用。程序中的引用一般在替换和匹配时使用。
前后关联约束(前后预查)
前后关联约束如下:
负向零宽断言
如果我们只是想要确保某个字符没有出现,但并不想去匹配它时怎么办?
如果我们想查找这样的单词--它里面出现了字母q,但是q后面跟的不是字母u,我们可以尝试这样:
如果我们想匹配的数据涉及到了跨行,比如下面这样的。
直接用 . 匹配不到 \n,所以我们需要找到一个原子,能匹配包括 \n 在内的所有字符。
这个原子的惯用写法就是 [\s\S]
The text was updated successfully, but these errors were encountered: