JS正则表达式从入门到入土(2)—— 元字符和字符类
元字符和字符类
元字符
正则表达式由两种基本字符类型组成:
1.原义(正常)文本字符:代表本身含义的字符,如:a、b、c、1、2、3等。
2.元字符:元字符是在正则表达式中有特殊含义的非字母字符,如\b
代表单词边界,可以是单词的开头或结尾。
常见的符号元字符:
*+?$^.|\(){}[]
字符类
一般情况下,正则表达式一个字符对应字符串一个字符。比如,表达式ab\t
的含义就是ab
加上一个\t
(水平制表符)。
但是,很多时候,我们不想匹配某个字符,而想匹配某类字符。此时,我们可以使用元字符[]
来构建一个简单的类。
所谓类是指符合某些特性的对象,一个泛指,而不是特指某个字符。表达式[abc]
把字符a
或b
或c
归为一类,可以匹配这类字符。
示例:
let reg = /[abc]/g
let text = 'a1b2c3d4e5'
text.replace(reg, 'X') // X1X2X3d4e5
可以发现,当正则表达式匹配到a
或b
或c
时,自动替换为X
字符类取反
很多时候回碰到这么一种情况,即不想匹配某些字符,其他都匹配。此时,可以使用字符类取反——使用元字符`^创建反向类,即不属于某类的内容。
表达式[^abc]
表示不是字符a
或b
或c
的内容。
示例:
let reg = /[^abc]/g
let text = 'a1b2c3d4e5'
text.replace(reg, 'X') // aXbXcXXXXX
结果表明,当表达式匹配到a
或b
或c
时,不进行处理,其余的字符都转换为了X
JS正则表达式从入门到入土(2)—— 元字符和字符类的更多相关文章
- JS正则表达式从入门到入土(3)—— 范围类
范围类 在使用正则表达式时,很多时候,我们会想要匹配a~z的所有字母,很多人想到,可以使用字符类[abcdefg...z],但是,这种方法需要输入所有需要匹配的字母.那么,有没有简单点的方法呢? 所幸 ...
- JS正则表达式从入门到入土(4)—— 预定义类与边界
预定义类 正则表达式提供预定义类来匹配常见的字符类 字符 等价类 含义 . [^\r\n] 除了回车符和换行符以外的所有字符 \d [0-9] 数字字符 \D [^0-9] 非数字字符 \s [\t\ ...
- JavaScript 正则表达式——对象,修饰符,元字符,字符类,范围类
㈠RegExp 对象 ⑴JavaScript通过内置对象RegExp支持正则表达式 ⑵有两种方法实例化RegExp对象 ①字面量 ②构造函数 ⑶字面量示例 示例1: 你会发 ...
- JS正则表达式从入门到入土(7)—— 分组
分组 在使用正则的时候,有时候会想要匹配一串字符串连续出现多次的情况,比如:我想匹配字符串Byron连续出现3次的情况. 有些人会直接写: Byron{3} 但是,这种情况仅仅会匹配Byro加上三个n ...
- JS正则表达式从入门到入土(10)—— 字符串对象方法
字符串对象方法 search方法 String.prototype.search(reg) search方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,方法返回第一个匹配结果的 ...
- JS正则表达式从入门到入土(9)—— test方法以及它的那些坑
test方法 test方法介绍 RegExp.prototype.test(str) test方法用于测试字符串参数中是否存在匹配正则表达式模式的字符串 test方法的使用 let reg = /\w ...
- JS正则表达式从入门到入土(8)—— REGEXP对象属性
对象属性 常用对象属性主要有以下几种: 1.global: 是否全文搜索,默认false 2.ignore case:是否大小写敏感,默认是false 3.multiline:多行搜索,默认值是fal ...
- JS正则表达式从入门到入土(6)—— 贪婪模式与非贪婪模式
贪婪模式 之前说了正则的量词,但是量词会带来一个到底该匹配哪个的问题. 如下正则表达式: \d{3,6} 这个正则表达式是匹配3到6个数字,但是当这个正则表达式被用来匹配12345678这个字符串,到 ...
- JS正则表达式从入门到入土(1)—— REGEXP对象
REGEXP对象 JavaScript通过内置对象RegExp支持正则表达式,有两种方法实例化RegExp对象. 1.字面量 2.构造函数 字面量 字面量是直接通过/.../创建RegExp对象实例. ...
随机推荐
- M451例程讲解之按键
/**************************************************************************//** * @file main.c * @ve ...
- JS-Zepto.js中文链接
附上zepto.js的中文链接:http://www.css88.com/doc/zeptojs_api/ 小伙伴再也不用担心“这特么到底啥意思!”
- fly
购物车飞入效果 核心: 1,购物车与飞入圆点(或者图标)的定位关系 完整源码: <!doctype html> <html lang="zh"> <h ...
- python基础之1-安装
author:headsen chen date :2018-03-22 17:16:14 notice :This article created by headsen chen and no ...
- asp 中创建日志打印文件夹
string FilePath = HttpRuntime.BinDirectory.ToString(); string FileName = FilePath + "日志" + ...
- mybatis设置数据库连接的密码不需要加密
mybatis设置数据库连接的密码不需要加密:在数据库连接配置处加上:<property name="connectionProperties" value="co ...
- 利用CSS3制作淡入淡出动画效果
CSS3新增动画属性“@-webkit-keyframes”,从字面就可以看出其含义——关键帧,这与Flash中的含义一致. 利用CSS3制作动画效果其原理与Flash一样,我们需要定义关键帧处的状态 ...
- Python全栈day21(作业针对一个文件进行查询修改删除的操作练习)
需求,有一个配置文件test.conf内容如下 backend www1 server 1 server 2 backend www2 server 3 server 4 add [{'backend ...
- http协议----->请求头和响应头
http实用头字段-----Range 如果请求里有这个range头,那么响应里也有 1.首先在webroot下放好a.txt 内容如下: 2.然后在本地有个下载未完成的a.txt 本地a.txt内容 ...
- Oracle的启动与关闭
启动数据库的前提条件: 环境变量定义好($ORACLE_HOME,$ORACLE_SID,$PATH) 能密码文件认证或OS认证(确保能登入sys) 有正确的参数文件(启动数据库需要查找参数文件,默认 ...