一门定义一个的格式使用源码文本

  node.js正则表达式

  接触过一门语言的人相信大家都知道正则表达式,相信大多数人学了一遍又一遍,还是一脸蒙圈,之前我也和大家有一脸的控货,今天来和大家一起总结总结。

  1. 定义一个正则表达式的格式使用。

  var reg = /a/ ;

  var reg1 = /a/g;

  var reg2 = /a/i;

  var reg3 = /a/m;

  js时间正则表达式_js时间转换正则表达式_js 时间 正则表达式

  g,i,m是三个标识,可以不要,也可以单独,也可以混用。

  g:表示全局,global,可以匹配多次;i:表示对大小写不敏感 ;m:多行

  2. 另一种方法:使用RegExp构造器。

  var my_regexp = new RegExp(""a"",'g');//使用反斜杠,引号需要转义

  console.log(my_regexp) ; 结果:/"a"/g

  RegExp对象有如下属性

  my_regexp.global; //如果设置了g则为truemy_regexp.ignoreCase;//如果设置了i,则为truemy_regexp.lastIndex;//下一次exec匹配开始的索引,初始值为0my_regexp.multiline ;//如果设置了m,则为truemy_regexp.source; //正则表达式源码文本

  js时间转换正则表达式_js 时间 正则表达式_js时间正则表达式

  3. 例子:var parse_url = /^(?:([A-Za-z]+):)?/;

  ^:表示字符串的开始,匹配以XXX开头的字符串

  (?:):表示一个非捕获型的分组,非捕获的分组只做一个简单的匹配,并不会捕获所匹配的文本

  ():表示捕获型分组

  []:表示一个字符类,a-zA-Z这个字符类包含26个大写字母和26个小写字母,-表示范围

  ?:表示这个分组是可选的,表示重复0次或1次。

  +:表示贪婪匹配,表示匹配1次或多次。

  js 时间 正则表达式_js时间正则表达式_js时间转换正则表达式

  后面跟着:,表示会按这个字面进行匹配。

  分组后面跟着:,会按这个字面进行匹配*/

  var reg1 = /(([A-Za-z]+):)?/;

  var reg2 = /(?:([A-Za-z]+):)?/;

  reg1.exec('http:xxx:'); //["http:", "http:", "http"]

  reg2.exec('http:xxx:'); //["http:", "http"]

  4. 例子:var r = /(/{0,3})/

  :转移符号

  {0,3}:表示匹配0次或1-3次

  //接下来一个分组

  5. (?::(d+))?

  //这是一个可选的分组,匹配有一个冒号和一个或多个数字组成的序列,d表示一个数字字符

  6. //接下来这个因子,匹配一个以/开始,之后的字符类?#以一个^开始,表示这个类包含除?和#之外的所有字符。表示这个字符类或被匹配0次或多次(?:/(?#))?

  7.(.*):会匹配除行结束符以外的所有字符

  8. $:表示字符串的结束,保证这个URL的尾部不会有其它更多的内容

  9. //正则表达式分支//一个正则表达式分支包含一个或多个正则表达式序列,这些序列被|字符分隔//如果这些序列的任何一项符合匹配条件js 时间 正则表达式js 时间 正则表达式,那么这个选择就会被匹配。它尝试者按顺序依次匹配这些序列项var reg9 = /in|int/;'into'.match(reg9);

  10、//正则表达式因子/* 一个正则表达式因子可以是一个字符,一个由圆括号包围的组,一个字符类,或者是一个转义序列 除了控制字符和特殊字符以外,所有的字符都会被按照字面处理

  / / [ ] () {} ? + | . ^ $

  //上面这些字符,如果希望按照字面去处理,则必须使用一个前缀来进行转义//注意前缀不能使字母或数字字面化//未被转义的.会匹配除行结束符以外任何字符

  //正则表达式转义//反斜杠在正则表达式因子中与在字符串中一样均表示转义,但在这里,略有不同/* f 换页符 n 换行符 r 回车 t 制表符 b 不是退格符 b 被指定一个字边界,方便用于对文本字边界进行匹配 d 表示数字,等同于[0-9] D表示相反 0-9 s 等同于[fnrtu000Bu0020u00A0u2028u2029] 这是Unicode空白符的一个不完全子集。S 则表示与其相反:fnrtu000Bu0020u00A0u2028u2029 w [0-9A-Z_a-z] W相反 0-9A-Z_a-z

  <pre class="md-fences mock-cm md-end-block" lang="" cid="c1066" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, &#39;Liberation Mono&#39;, Courier, monospace; font-size: 0.9em; white-space: pre-wrap; break-inside: avoid; border: 1px solid rgb(221, 221, 221); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; background-image: inherit; background-attachment: inherit; background-size: inherit; background-origin: inherit; background-clip: inherit; background-position: inherit; background-repeat: inherit;">[A-Za-zu00C0-u1FFFu2800-uFFFD],包括了所有的Unicode字母,但也包括成千上万非字母的字符</pre>

  1 是指向分组1所捕获到的文本的一个引用,所以能再次被匹配,2指向分组2的引用,,3以此类推

文章由官网发布,如若转载,请注明出处:https://www.veimoz.com/1446
0 评论
692

发表评论

!