正则表达式中的方法

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>正则表达式</title>
</head>
<body>
<h1>正则表达式的重复字符语法</h1>
<pre>
字符 含义
{n,m} 匹配前一项至少n次,但不能超过m次
{n,} 匹配前一项n次或者更多次
{n} 匹配前一项n次
? 匹配前一项0次或者1次,也就是说前一项是可选的,等价于{0,1}
+ 匹配前一项1次或者多次,等价于{1,}
* 匹配前一项0次或者多次,等价于{0,}
^ 匹配字符串的开头,在多行检索中,匹配一行的开头。
$ 匹配字符串的结尾,在多行检索中,匹配一行的结尾。
. 除换行符和 其他Unicode行终止符之外的任意字符。

字符 匹配
[...] 方括号内的任意字符
[^...] 不在方括号内的任意字符
\w 任何ASCII字符组成的单词,等价于[a-zA-Z0-9]
\W 任何不是ASCII字符组成的单词,等价于[^a-zA-Z0-9]
\s 任何Unicode空白符
\S 任何非Unicode空白符的字符,注意\w和\S不同
\d 等价于[0-9]
\D 等价于[^0-9]
</pre>
<h1>正则表达式的修饰符</h1>
<pre>
字符 含义
i 执行不区分大小写的匹配
g 执行一个全局匹配,简言之,即找到所有的匹配,而不是在找到第一个后就停止
m 多行匹配模式,^匹配一行的开头和字符串的开头,$匹配行的结束和字符串的结束
</pre>
<p>string支持4种使用正则表达式的方法</p>

<p>1.search()参数不是正则表达式,则会先通过RegExp构造函数将它转换成正则表达式,search()方法不支持全局检索,因为它忽略正则表达式中的修饰符g。</br>
console.log(‘JavaScript‘.search(/script/i));//4</br></p>
<p>2.replace()方法以执行检索与替换操作。其中第一个参数是一个正则表达式,第二个参数时要进行替换的字符串。如果第一个参数不是正则表达式而是字符串,则replace()将直接搜索这个字符串,而不是像search()一样首先通过RegExp构造函数将它转换成正则表达式。最值得注意的是,replace()方法的第二个参数可以使函数,该函数能够动态的计算替换字符串。</p>
<p>3.match()方法是最常用的string正则表达式方法。它的唯一参数就是一个正则表达式(或通过RegExp构造函数将它转换成正则表达式),返回的是一个由匹配结果组成的数组。如果该正则表达式设置了修饰符g,则该方法返回的数组包含字符串中的所有匹配结果。<u>如果这个正则表达式没有设置修饰符g,match()就不会进行全局搜索,它也返回一个数组。在这种情况下,数组的第一个元素就是匹配的字符串,余下的元素则是正则表达式中用圆括号括起来的子表达式。因此,如果match()返回一个数组a,那么a[0]存放的是完整的匹配,a[1]存放的则是与第一个用圆括号括起来的表达式相匹配的子串,以此类推。</u></p>
<h1>RegExp的方法</h1>
<p>Regexp对象定义了两个用于执行模式匹配操作的方法,参数时一个字符串,而String方法的参数是一个RegExp对象。exec()和test()</p>

<script>
// search()
console.log(‘JavaScript‘.search(/script/i));//4
console.log(‘JavaScript‘.search(/ggg/i));//-1
// replace()
var text = ‘JavaScripthhjavascriptee‘;
var text1=text.replace(/JavaScript/ig,‘m‘);
console.log(text);//JavaScripthhjavascriptee
console.log(text1);//mhhmee
var text2 = text.replace(‘javascript‘,‘mmm‘);
console.log(text2);//JavaScripthhmmmee
// match()
console.log(‘1psjkhg3;sl3kd2‘.match(/\d/g));//["1", "3", "3", "2"]
var url = /(\w+):\/\/([\w.]+)\/(\S*)/;
var text = "Visit my blog at http://www.example.com/~david";
var result = text.match(url);
console.log(result);//["http://www.example.com/~david", "http", "www.example.com", "~david", index: 17, input: "Visit my blog at http://www.example.com/~david"]
if(result != null){
var fullurl = result[0];//http://www.example.com/~david
var protocol = result[1];//http
var host = result[2];//www.example.com
var path = result[3];//~david
}
//exec()
var pattern = /Java/g;
var text = "JavaScript is more fun than Java!";
var result;

while((result = pattern.exec(text)) != null){
console.log(result);
console.log("Matched ‘"+result[0]+"‘"+"at position"+result.index+";next search begins at"+pattern.lastIndex);
}

//test()
console.log(pattern.test(‘javascript‘));//false
console.log(pattern.test(‘JavaScript‘));//true

</script>
</body>
</html>

原文地址:https://www.cnblogs.com/studyh5/p/9315906.html

时间: 2024-08-04 04:59:02

正则表达式中的方法的相关文章

js正则表达式中test,exec,match方法的区别说明

test  test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var reg = new RegExp("1.", "");alert(reg.test(str)); // true exec exec 查找并返回当前的匹配结果,并以数组的形式返回.var str = "1a1b1c";var reg = new RegExp("1.", "&q

linux中正则表达式的使用方法

大家好,欢迎你们来到我的博客,作为一个博客新手,这是我第一次发帖子,希望接下来的时间我们能够在linux的学习中互帮互助,共同进步! 好了,废话不多说,回归正题,今天我将要介绍的是非常强大的文本搜索工具--grep. grep的全称为:Globel Search Regular Expression and Printing out the line(全局搜索正则表达式并把行打印出来).它最重要的功能根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,然后将符合要求的字符串打印出来,但必须

正则表达式中awk使用方法

awk 命令的基本格式 awk [options] 'program' file options 这个表示一些可选的参数选项,反正就是你爱用不用,不用可以拉到... program 这个表示 awk 的可执行脚本代码,这个是必须要有的. file 这个表示 awk 需要处理的文件,注意是纯文本文件,不是你的 mp3,也不是 mp4 啥的.. 先来一个 awk 的使用例子热热身 $ awk '{print $0}' /etc/passwd awk 命令的可执行脚本代码使用单引号括起来,紧接着里面是

正则表达式中pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别

正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串. 将匹配的子串替换或者从某个串中取出符合某个条件的子串,或者是在指定的文章中抓取特定的字符串等.Python处理正则表达式的模块是re模块,它是Python语言中拥有全部的正则表达式功能的模块.正则表达式由一些普通字符和一些元字符组成.普通字符包括大小写的字母.数字和打印符号,而元字符是具有特殊含义 正则表达式大致的匹配过程是: 拿正则表达式依次和字符串或者文本

ThinkPHP中create()方法自动验证

自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证,过滤非法字段, 在控制器中使用create()方法,(返回值为true/false),会自动触发模型类中的$_validate属性(为父类Model中的方法,在子类Model中重写),在$_validate中自定义验证规则(验证规则下面会详细说明),当create()方法没有数据即返回值为fals

Java中replaceAll()方法的&quot;\&quot;问题

一.前话 看似小小的一个问题,却往往足矣让我们困惑了半小时.一小时甚至更久的时间.当你得知真相后,总是会愤怒地骂道:"居然是这样!这不是坑爹么!".嗯哼,这能怪谁?只能说明自己还太嫩!So--平时还是要多注意些细节,要不断的积累不断的丰富经验,日后才能有显摆的资本. 二.天真的以为 replaceAll()这方法太常见了,一般的字符替换都好理解.但是如果你所要替换的出现了"\"的话,那可就不大一样了.例如: str = "D:\test\test2\tes

javascript正则表达式定义的方法是什么

javascript正则表达式的2种定义方法:一种是直接调用RegExp(),第二种是直接用字面量来定义,即var re = /正则规则/; js正则表达式的2种定义方法本质都是调用RegExp()方法 在调用同一段正则代码的时候,ECMAScript3和ECMAScript5中表现完全不一样 function reg(){ var re = /\sjavascript/; return re; } 分别在ECMAScript3和ECMAScript5中调用reg()方法多次 在ECMAScri

正则表达式中问号等特殊字符的转义

在.NET Framework 开发人员指南 的 字符转义 一节 有这样一段话.除 .$ ^ { [ ( | ) * + ? \ 外,其他字符与自身匹配.但是其中并未注明这些字符应该匹配为什么字符.为了方便自己以后查阅,也为了方便网友搜索我就写在这里了.[Sipo] 点的转义:.  ==> \\u002E 美元符号的转义:$  ==> \\u0024 乘方符号的转义:^  ==> \\u005E 左大括号的转义:{  ==> \\u007B 左方括号的转义:[  ==> \\

切点表达式定义了拦截类中所有方法,所以每个方法都被增强

1.AOP的作用 在OOP中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加.AOP则将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为"切面"(Aspect),切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性. 2.DI 和 IOC 概念 依赖注入或控制反转的定义中,调用者不负责被调用者的实例创建工作,该工作