正则表达式之基本属性

参数:

  • 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]; //
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 7,230评论 0 99
  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 2,197评论 0 9
  • 正则表达式 由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字...
    yshenhn阅读 1,083评论 0 0
  • 一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否...
    见哥哥长高了阅读 2,033评论 6 48
  • 一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否...
    Suger_森阅读 370评论 0 0