美文网首页
正则表达式之基本属性

正则表达式之基本属性

作者: 熬得萨菲 | 来源:发表于2020-02-06 19:14 被阅读0次

    参数:

    • g: 全局匹配;找到所有匹配,而不是在第一个匹配后停止

    • i: 忽略大小写

    • m: 多行; 将开始和结束字符(^和$)视为在多行上工作(也就是,分别匹配每一行的开始和结束(由 \n 或 \r 分割),而不只是只匹配整个输入字符串的最开始和最末尾处。

    • u: Unicode; 将模式视为 Unicode 序列点的序列; (能匹配到码点大于 0Xffff 的字符)

    • y: 粘性匹配; 仅匹配目标字符串中此正则表达式的 lastIndex 属性指示的索引(并且不尝试从任何后续的索引匹配)。

    • s: dotAll 模式,匹配任何字符(包括终止符'\n') ----> var str = 'abc\n'; var reg = /.+/gs; reg.exec(str) // 连换行符也能匹配出来。

    • ".": 匹配任意单个字符,但是行结束符除外: \n \r \u2028 或 \u2029。

    字符类别:

    • . : 匹配任意单个字符,但是行结束符除外: \n \r 。
    • \d: [0-9]
    • \D: [^0-9]
    • \w: [A-Za-z0-9_],匹配任意来自基本拉丁字母表中的字母数字字符,还包括下划线。
    • \W: [^a-za-z0-9_]
    • \s: 匹配一个空白符,包括空格、制表符、换页符和其它 unicode 空格。 等价于[\f\n\r\t\v\u00a0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​ \u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​​\u202f\u205f​ \u3000] -----> eg: /\s\w*/.exec('foo bar') // bar: 匹配空格后面的字符
    • \S: [^ \f\n\r\t\v\u00a0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​ \u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​​\u202f\u205f​ \u3000]
    • \t: 匹配一个水平制表符(tab)
    • \r: 匹配一个回车符(carriage return)
    • \n: 匹配一个换行符(linefeed)
    • \v: 匹配一个垂直制表符(vertical tab)
    • \f: 匹配一个换页符(form-feed)
    • \0: 匹配一个 NUL 字符。 不要再此后面跟小数点。

    字符集合:

    • [xyz]: 一个字符集合,也叫字符组。 匹配集合中的任意“一个”字符。 可以使用连字符号指定范围: [a-d] === [abcd][^xyz]: 反义字符组。 也可以使用连字符号表示范围。 [^a-d] === [^abcd]
    • ^: 匹配从什么开始。 /^A/不匹配'an A'中的 A,但匹配'An A'中的'A'
    > 注意点: 当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠\)。 eg: var re = new RegExp('\\w+') === var reg = /\w+/
    var str = "abc";
    var reg = /.+/g;
    reg.exec(str); // 'abc'
    

    先行断言: x 只有在 y 前面才匹配,必须写成/x(?=y)。

    /\d+(?=%)/.exec("100% of US")[0]; // ['100']
    

    后行断言: x 只有不在 y 前面才匹配。

    /(?!%)\D/.exec("100% of US")[0]; //
    

    相关文章

      网友评论

          本文标题:正则表达式之基本属性

          本文链接:https://www.haomeiwen.com/subject/tciuxhtx.html