正则表达式(基础篇)

正则表达式,学了好多次了,但是没有经过大量的实践,总是易忘,唉…

通用正则语法

  • [abc]表示匹配a或者b或者c的字符

  • [^abc]表示匹配不是a或者b或者c的字符,^仅在[]中取反,在其他情况下表示边界

  • 范围类[a-z]在中括号里面的-表示范围,如需匹配短横线,则需在后面再加-,如[0-9-]

  • 预定义类:. 匹配除了换行符以外的任何字符 \d 匹配数字 \s 匹配字母,数字,下划线 \w 匹配空格(字母如果变大写则表示取反)

边界

  • ^ $ 为起始边界

  • \b 单词边界

  • \B 非单词边界

量词

  • ? 匹配0个或1个

  • + 匹配 >=1 个

  • * 匹配任意多个

  • {n,m} a为最少,b为最多。若为{n},则为精确匹配;若为{n,},则匹配大于n个

匹配模式

  • 默认的匹配模式是贪婪模式(即尽可能多的匹配)

  • 若想将贪婪模式改成“廉洁模式(自创)”,只需在量词后面加上“ ? ”

  • 默认情况下,量词制作用于紧挨着它的字符。如果想要破,可以用 () 来进行分组

  • () 来进行分组后的分组内容可以用 $1,$2,... 来获取

JS中的正则

正则对象

  • 正则对象的属性有 g,i,m,lastIndex

  • test 方法,返回布尔值

  • exec 方法,匹配不成功返回 null,否则返回结果数组,数组的第一个元素表示匹配的文本,第二个元素是与正则对象的第一个子表达式相匹配的文本(如果有),以此类推

与正则相关的字符串方法

  • search 方法,返回第一个匹配结果的index,否则返回null(它不会执行全局匹配)
  • match 方法,如果不加‘ g ’,则返回null或数组,数组存放了与它找到的匹配文本有关的信息,第一个元素是匹配的文本,其余元素存放子表达式匹配的内容
叶思玄 wechat
如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!