JS语言核心——“正则表达式的模式匹配”

LogicAetherX
• 阅读 3002
  • 正则表达式(regular expression):一个描述字符模式的对象

1 正则表达式的定义

  • RegExp()构造函数

  • 正则表达式直接量(一对斜杠//


var patern0 = //;
var patern1 = new RegExp();

ECMAScript6 新特性——“正则的扩展”

JavaScript引用类型——“RegExp类型”的注意要点

2 用于模式匹配的String方法

search()

不支持全局搜索(忽略表达式参数中的修饰符g)

var str = "JavaScript notebook";
console.log(str.search(/script/i)); //4

replace()

两个参数(第一个是正则表达式,第二个是要替换的字符串)

var str = "javascript notebook";
console.log(str.replace(/javascript/g, "JavaScript")); //JavaScript notebook 

var str = "javascript notebook";
console.log(str.replace(/j(ava)script/, "J$1")); //Java notebook 

match()

接收一个正则表达式,返回的是一个由匹配结果组成的数组

var str = "javascript notebook";
console.log(str.match(/\S+/g).join("&")); //javascript&notebook 

var str = "http://www.example.com/ajax.html";
var a = str.match(/(\w+):\/\/([\w.]+)\/(\S*)/);
console.log(a[0]);
console.log(a[1]);
console.log(a[2]);
console.log(a[3]);
//http://www.example.com/ajax.html 
//http 
//www.example.com 
//ajax.html 

split()

将调用它的字符串拆分为一个子串组成的数组,使用的分隔符是该方法的参数:

var str = "http://www.example.com/ajax.html";
var a = str.split("/");
a.map(function (item, index, array) {
    console.log(item, index);
});
//http: 0 
// 1 
//www.example.com 2 
//ajax.html 3 

方法的参数也可以是正则表达式:

var str = "http://www.example.com/ajax.html";
var a = str.split(/[\.:\/]/);
console.log(a.toString());
a.forEach(function (item) {
    if (item) {
        console.log(item);
    }
});
//http,,,www,example,com,ajax,html 
//http 
//www 
//example 
//com 
//ajax 
//html 

3 RegExp对象

如果待检索的字符串是由用于输入的,就必须使用构造函数,在程序运行时创建正则表达式

3.1 RegExp属性

  • source;

  • global;

  • ignoreCase;

  • multiline;

  • lastIndex;

3.2 RegExp方法

exec()

var str = "javascript in java or script";
var patern = /java\w*/g;
var a1 = patern.exec(str);
console.log(a1.toString());
console.log(patern.lastIndex); //lastIndex为10
var a2 = patern.exec(str);
console.log(a2.toString());
console.log(patern.lastIndex); //lastIndex为18
//javascript 
//10 
//java 
//18 

test()

var str = "javascript in java or script";
var patern = /java\w*/g;
var a = patern.test(str);
console.log(a); //True
点赞
收藏
评论区
推荐文章
半臻 半臻
4年前
Python基础11——正则表达式
19正则表达式19.1正则基础正则表达式:字符串处理工具应用场景1.html查询2.验证字符串是否符合规则re模块match方法python通过正则表达式对字符串进行匹配importre使用match方法进行匹配操作re.match()从字符串的开始位置进行匹配,匹配成功,返回match对象。匹配失败,返回Noneresre
Stella981 Stella981
3年前
JavaScript 正则表达式上——基本语法
定义JavaScript种正则表达式有两种定义方式,定义一个匹配类似<%XXX%的字符串1\.构造函数varregnewRegExp('<%\^%\%','g');2\.字面量varreg/<%\^%\%/g;g:global,全文搜索,默认搜索到第一个结果接停止
Stella981 Stella981
3年前
Python3正则表达式
在Python中使用正则表达式Python语言通过标准库中的re模块(importre)支持正则表达式。使用match方法匹配字符串匹配字符串也就是设定一个文本模式,然后判断另外一个字符串是否符合这个文本模式。importre
Wesley13 Wesley13
3年前
MYSQL正则表达式
MySQL中使用REGEXP操作符来进行正则表达式匹配。下表中的正则模式可应用于REGEXP操作符中。模式描述^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配'\\n'或'\\r'之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp对象的Mul
Wesley13 Wesley13
3年前
JS中正则表达式
正则表达式的定义js中的正则表达式使用RegExp对象表示,两种创建正则表达式对象的方法直接量定义将表达式包含在斜杠之间varpattern/js/;构造函数定义:使用RegExp()构造函数定义varpatternnewRegExp('js');
Stella981 Stella981
3年前
Python正则表达式用法详解
搞懂Python正则表达式用法Python正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。re模块使Python语言拥有全部的正则表达式功能。compile函
Stella981 Stella981
3年前
Python中re(正则表达式)模块学习
今天学习了Python中有关正则表达式的知识。关于正则表达式的语法,不作过多解释,网上有许多学习的资料。这里主要介绍Python中常用的正则表达式处理函数。re.matchre.match尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词。!复制代码(http://static.oschina.net
Stella981 Stella981
3年前
Python正则表达式精讲
_摘要:_ Python正则表达式精讲一、什么是正则表达式正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:RegularExpression,在代码中常简写为regex、regexp或RE),是计算机科学的一个概念。Python正则表达式精讲一、什么是正则表达式正则表达式,又称正规表示式、正规表示法、正规表
Stella981 Stella981
3年前
Regex 正则表达式入门
!在这里插入图片描述(https://imgblog.csdnimg.cn/20200502170142100.jpg?pic_center)0,什么是正则表达式正则表达式(RegularExpression简写为Regex),又称为规则表达式,它是一种强大的文本匹配模式,其用于在字符串中查找匹配符
Stella981 Stella981
3年前
Linux文本处理常用命令
1.正则表达式(1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符az)以及特殊字符(称为元字符,如/、\、?等)组成。(2)基本元字符集及其含义^:只匹配行首。 如^a匹配以a开头的行abc,a2e,a12,aaa,......$:只匹配行尾。 如^a匹配以a结尾的行bca,12a,
Stella981 Stella981
3年前
JavaScript基础入门10
JavaScript基础入门10\toc\正则表达式正则表达式(regularexpression)是一个描述字符模式的对象。在JavaScript中,RegExp表示正则对象。在开发的工作当中,我们经常需要使用正则表达式强大的模式匹配、文本检索、以及替换功能。简单的说,