正则表达式

  • \d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^$分别是什么?
    \d:是一个正则表达式中预定义的模式,匹配匹配0-9之间的任一数字,相当于[0-9]
    \w:也是预定义的模式,匹配大小写字符,数字和下划线,相当于[a-zA-Z0-9_]
    \s:预定义模式,匹配空格(包括制表符、空格符、断行符等),相当于[\t\r\n\v\f]
    [a-zA-Z0-9]:表示字符类,即匹配a-zA-Z0-9之间任意一个即可,其中连字符号-是连续范围的简写
    \b:表示的是词的边界,即一个单词字符和非单词字符的交界,注意:\b并不匹配任何字符,只匹配一个位置
    .:是正则中的元字符,即不表示字面的意思,有其他的含义,点字符可以匹配除回车\r,换行\n,行分隔符\u2028和段分隔符\u2029以外的所有字符
    *:也是元字符,作为量词,表示的是0次或者多次
    +:元字符,作为量词,表示一次或者多次
    ?:元字符,作为量词,表示0次或者1次
    x{3}::匹配出现3次的x字符
    ^:元字符,匹配字符串的开始位置
    $:元字符,匹配字符串的结束位置
  • 贪婪模式和非贪婪模式指什么?
    贪婪模式:当使用量词*+的时候默认就是贪婪模式,表示尽可能多的匹配,直到不能匹配为止,例如
"this is test".match(/<.*>/)//"test"

我们的原意是匹配,但是因为贪婪模式会尽可能多的匹配,所以当第一次匹配到的时候不会停止,而是继续往下查找,直到不能匹配为止
非贪婪模式:当*?+?时候触发非贪婪模式,也可以称为惰性模式,就是一旦满足条件就不再往下匹配

"this is test".match(/<.*?>/)//""

当使用非贪婪模式的时候,一旦匹配到满足条件的,就返回了结果不再继续往下匹配

你可能感兴趣的:(正则表达式)