正则表达式

\d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分别是什么?

\d :匹配0到9之间任意数字,等价于[0,9];
\w:匹配一个单字字符(字母、数字或者下划线),等价于[A-Za-z0-9_];
\s :匹配一个空白字符,包括空格、制表符、换页符和换行符;
[a-zA-Z0-9]:表示匹配大小写字母和数字;
\b : 匹配一个词的边界。例如:

'this is a book'.replace(/\bis\b/g,'Is') // "this Is a book"
'this is a book'.replace(/is\b/g,'Is') // "thIs Is a book"

. :匹配除换行符之外的任何单个字符。

  • :匹配前一个表达式0次或多次。等价于 {0,}。
  • :匹配前面一个表达式1次或者多次。等价于 {1,}。
    ? :匹配前面一个表达式0次或者1次。等价于 {0,1},若紧跟在任何量词 *、 +、? 或 {} 的后面,将会使量词变为非贪婪的(匹配尽量少的字符)。
    x{3} :匹配包含3个x的字符串的序列.例如:
    ' xxx aa ww xx xxx'.replace(/x{3}/g,'A') // " A aa ww xx A"
    ^ :在[]中意为取反([abc]匹配abc中任意一个,[^abc]匹配除abc外的任意字符);楚辞之外表示匹配输入的开始。例如:
    '@123@abc@'.replace(/^@./g,'Q') //"Q23@abc@"
    $ :匹配输入的结束。例如:
    '@123@abc@'.replace(/.@$/g,'Q') //"@23@abcQ"

贪婪模式和非贪婪模式指什么?

贪婪模式: 量词在默认下是尽可能多的匹配的。例如:
'123456789'.match(/\d{3,5}/g); //["12345", "6789"]
非贪婪模式:让正则表达式尽可能少的匹配,也就是说一旦成功匹配不再继续尝试,做法很简单,在量词后加上?即可。例如:
'123456789'.match(/\d{3,5}?/g); //["123", "456", "789"]

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