博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017/5 JavaScript基础11 --- 正则与模式匹配
阅读量:6161 次
发布时间:2019-06-21

本文共 1111 字,大约阅读时间需要 3 分钟。

hot3.png

一、什么是正则

在常见的字符串检索或替换中,我们需要提供一种模式 表示 检索或替换的规则。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

  1. abc : 匹配 aabc 、aabbcc、abc
  2. [a-z]{4} : 小写 a-z  重复 4次 :abcd
  3. \d\d\d :三个数字

二、简单的例子

/正则表达式/ .test('123'); 匹配成功返回 true, 正则表达式用 斜线括起来

使用 new RegExp("正则表达式").test( );  new可以省略,默认大小写敏感,返回true

三、正则基础

1、表示字符

  1. . 点 匹配任意字符
  2. \D 是\d的补集

2、表示范围

  1. [a-z] : a到z
  2. [A-Z0-9a-z_] :相当于 \w 
  3. [ABCD] : 表示匹配abcd中任一个
  4. [^abc] : 除了 abc以外的都可以
  5. ^Hi : Hi 开头的
  6. \bno : 匹配 空格 no

2、特殊字符转义

右斜线进行字符转义,转为普通的字符。

3、分组

  1. 分组,后面也可以使用/(abc)/。
  2. /(abc)\1/.test('abcabc');  (abc)分组\1 (\1 等价于,前面分组匹配到的字符串相当于 abc)
  3. (?:x)  仅分组,但不重复

3、重复

  1. x* : 重复 0次到多次(贪婪)
  2. x+ :重复一次到多次(贪婪)
  3. 非贪婪:匹配尽可能少的。*?匹配0个 , +?匹配1个

4、三个标志位

  1. global :正常一个长字符串,匹配到一个就结束了,如果想要匹配到全部的字符串,+global
  2. ignoreCase : 不区分大小写
  3. multiline : 分行跨行。
  4. gim : g-global ; i-ignoreCase ; m-multiline
  5. 通过RegExp对象,在第二个参数中写。 

5、RegExp 对象属性

sorce:正则内容

6、RegExp对象方法

  1. .exec("字符串");用/abc/匹配字符串,获得abc
  2. toString();返回正则内容
  3. compile:改变正则属性,将正则变成 def

7、string类型与正则表达式相关的方法

  1. 分组(abc)\1等价 abcabc :检索 abcabc的索引。返回索引0.
  2. replace : 替换 把b 改成1 。使用非贪婪算法 b+? 匹配尽可能少,所以仅仅替换了第一个b, 不加+ 则四个b 换为一个1. aa1cc
  3. match :匹配一个组,匹配多个结果
  4. /b+/g --- global .
  5. splic 分割

 

转载于:https://my.oschina.net/u/2991733/blog/906691

你可能感兴趣的文章
Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
查看>>
Apache通过mod_php5支持PHP
查看>>
java学习:jdbc连接示例
查看>>
Silverlight 如何手动打包xap
查看>>
禁用ViewState
查看>>
Android图片压缩(质量压缩和尺寸压缩)
查看>>
nilfs (a continuent snapshot file system) used with PostgreSQL
查看>>
【SICP练习】150 练习4.6
查看>>
HTTP缓存应用
查看>>
KubeEdge向左,K3S向右
查看>>
DTCC2013:基于网络监听数据库安全审计
查看>>
CCNA考试要点大搜集(二)
查看>>
ajax查询数据库时数据无法更新的问题
查看>>
Kickstart 无人职守安装,终于搞定了。
查看>>
linux开源万岁
查看>>
linux/CentOS6忘记root密码解决办法
查看>>
25个常用的Linux iptables规则
查看>>
集中管理系统--puppet
查看>>
Exchange 2013 PowerShell配置文件
查看>>
JavaAPI详解系列(1):String类(1)
查看>>