正则表达式基础

  • 来源:网络
  • 更新日期:2020-07-02

摘要:正则表达式Regular Expression 使用单个字符串描述、匹配一系列符合某个句法规则的字符串.代表任意字符+代表一个或多个()可以对其分组,$1可以获取分组的内容\\d代表数字{}中

正则表达式

Regular Expression 使用单个字符串描述、匹配一系列符合某个句法规则的字符串

.代表任意字符

+代表一个或多个

()可以对其分组,$1可以获取分组的内容

\\d代表数字

{}中可以写个数

[]中的元素是或的关系

^标示开头

$表示结尾

\\b代表单词边界

var reg = / \\bis\\b /g; 匹配is字符

g代表global 全局替换,不添加的话,搜索到第一个就匹配停止了

i ignore case忽略大小写,默认大小写敏感

mmultiple lines多行搜索 将字符串中的换行符也当做一行


元字符

原义文本字符

例如: a b c

元字符

在正则表达式中有特殊含义的非字母字符

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

字符类

[] 来构建一个简单的类,所谓的类是指符合某些特性的对象,是一个泛指而不是特指某个对象

[abc]就是有其中的任意一个即可

字符类取反

加上^符号

[^abc]匹配abc以外的字符

范围类[a-z]来表示从a到z的任意字符这是个闭区间 也表示a和z的本身如果想匹配横线,可以直接在后边加一个 [a-b-]js预定义类字符等价类含义.[^\\r\\n]除了回车和换行符以外的所有字符\\d[0-9]数字字符\\D[^0-9]非数字字符\\s[\\t\\n\\x0B\\f\\r]空白符\\S[^\\t\\n\\x0B\\f\\r]非空白符\\w[a-zA-Z_0-9]单词数字(字母数字下划线)\\W[^a-zA-Z_0-9]非单词数字边界字符含义^以xx开始$以xx结束\\b单词边界\\B非单词边界量词字符含义?出现零次或者一次(最多出现一次)+出现一次或多次(至少出现一次)*出现零次或多次(任意次){n}出现n次{n,m}出现n到m次{n,}至少出现n次贪婪与懒惰模式
 >'12345678'.replace(/\\d{3,6}/,'X')

.>"X78"

正则表达式默认会最多去匹配

想使用飞贪婪模式 在量词后加上?即可

>'12345678'.replace(/\\d{3,6}?/,'X')

.>"X45678"
分组
beyond{3} 是把d出现三次  量词作用于紧挨着的单词
(beyond){3}整个单词出现了三遍

反向引用

>'2017-06-29'.replace(/(\\d{4})-(\\d{2})-(\\d{2})/,'$3/$2/$1')
.>"29/06/2017"

将每个小括号中的内容作为一个对象,可以使用这个对象

忽略分组

如果不想捕获某个分组,在分组内加上?:即可

推荐教程:《JS教程》