第七章 正则表达式
一、正则表达式的支持
var reg=new RegExp("cat")//匹配字符串中第一次出现的cat
var reg=new RegExp("cat","g")//“g”是global的缩写,匹配字符串中所有cat
var reg=new RegExp("cat","gi")//i表示不区分大小写
var reg=/cat/gi;//Perl风格写法
test() 返回true、false
exec() 返回数组
match() 返回一个包含在字符串中所有匹配的数组
search() 返回第一次出现的索引
为什么有些符号必须转义,因为这些符号是元字符,元字符是正则表达式中一部分
元字符有:([{\^$|)?*+.
因此:var icg=/\?/ 或者 =new RegExp("\\?")注意这里面一个斜杠和两个斜杠的区别
二、字符类
1.简单类
var a=/[abc]de/gi; [...]中会选择性匹配
2.负向类
var a=/[^abc]de/gi; [...]不会匹配
3.范围类
[a-z][A-Z][0-9]
4.组合类
[a-zA-Z0-9]
5.预定义类
.->[^\n\r]除了换行和回车之外的任意字符
\d->[0-9]数字
\D->[^0-9]非数字
\s->[ \t\n\x0B\f\r]空白字符
\S->[^ \t\n\x0B\f\r]非空白字符
\w->[a-zA-Z0-9]单词字符
\W->[^a-zA-Z0-9]非单词字符
简单量词:
? ->出现0次或1次
* ->出现0次或多次
+ ->出现1次或多次
{n} ->一定出现n次
{n,m} ->至少出现n次不超过m次
{n,} ->至少出现n次
eg: /b?cds?d/=/b{0,1}cds{0,1}d/
贪婪量词:先看整个字符串是不是一个匹配,不是的话,减去最后一个字符,再匹配,类似循环,直到结束。符号表示同简单量词
惰性量词:先看字符串中第一个字母是不是匹配,不是的话,继续读入下一个字符,再匹配,类似循环,直到结束。在简单量词后面加"?"号
支配量词:只尝试匹配整个字符串。在简单量词后面加"+"号
候选符号:|
边界符:
^ 行开头
$ 行结尾
\b 单词边界
\B 非单词边界
三、RegExp对象
1.实例属性
global(g)------Boolean值,表示全局选项是否设置
ignoreCase(i)-----Boolean值,表示是否忽略大小写
lastIndex---------整数,代表下次匹配会从那个字符开始,也就是当前匹配的最后索引值(尽在使用exec() or test()函数才会填入,否则默认为0,即从头开始匹配)
multiline(m)-----Boolean值,表示是否是国航匹配模式
source---源字符串形式
2.静态属性
长名-----------------短名-----描述
input---------------$_ 最后用于匹配的字符串(传递给exec() or test()的字符串)
lastMatch-----------$& 最后匹配的字符
pastParen-----------$+ 最后匹配的分组
leftContext---------$` 在上次匹配的前面的子串
multiline-----------$* 是否启用多行模式
rightContext--------$' 在上次匹配的后面的子串
eg:
var sToMatch="this has been a short,short number";
var reShort=/(s)hort/g;
reShort.test(sToMatch);
alert(RegExp.input); 或者 alert(RegExp.$_); //返回"this has been a short,short number"
alert(RegExp.leftContext); 或者 alert(RegExp["$`"]); //返回"this has been a "
alert(RegExp.rightContext); 或者 alert(RegExp["$'"]); //返回",short number"
alert(RegExp.lastMatch); 或者 alert(RegExp["$&"]); //返回"short"
alert(RegExp.pastParen); 或者 alert(RegExp["$+"]); //返回"s"
分享到:
相关推荐
### 正则表达式基础知识与应用 #### 一、正则表达式的定义及用途 正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助我们实现字符串的搜索、替换等操作。它在多种编程语言中都有应用,尤其是在...
Python正则表达式全套笔记v0.3 本文档是小小明个人笔记,涵盖了正则表达式的各个方面,包括各种模式、分组、断言、匹配、查找、替换和切割等。文档中提供了详细的正则匹配规则表,涵盖了基本字符规则、预定义字符集...
### 文本三剑客之grep及正则表达式 #### 1. grep 命令简介 - **定义**:`grep` 是 Linux 和 Unix 系统中的一种强大的文本搜索工具,它能够使用正则表达式来搜索文本,并将匹配的行打印出来。其全称是 Global ...
### Java正则表达式基础知识与应用 #### 一、引言 正则表达式是一种强大的文本处理工具,它能够帮助开发者高效地进行字符串的搜索、替换等操作。Java中的正则表达式支持广泛的标准和特性,是进行文本处理任务的理想...
在Java编程语言中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作。在"java 银行卡 验证 正则表达式使用"这个主题中,我们将深入探讨如何利用正则表达式进行银行卡、手机号码和邮箱以及URL地址的...
这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...
### 正则表达式学习笔记 #### 一、正则表达式概述 正则表达式是一种强有力的模式匹配工具,广泛应用于各种编程语言中,用于文本处理。正则表达式允许用户定义复杂的查找模式,这对于数据验证、搜索和替换操作特别...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配、搜索、替换和提取信息。它在软件开发中广泛应用于数据验证、文本处理、输入校验等场景。正则表达式通过特殊的语法和运算符,允许程序员构建灵活且...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配、查找和替换操作。在Java中,正则表达式主要涉及到`java.lang.String`、`java.util.regex.Pattern`和`java.util.regex.Matcher`这三个类。下面我们...
4. **学习正则的学习笔记**:可能包含一份详细的正则表达式学习资料,涵盖了基础概念如元字符、量词、字符类等,以及高级特性如分组、后向引用、预查等,方便用户系统学习。 5. **正则表达式参考手册**:可能提供了...
正则表达式则是一种强大的文本匹配工具,它允许我们在字符串中搜索、匹配和提取特定的文本模式。 ### 字符串处理 PHP提供了丰富的字符串处理函数,从基本的字符操作到复杂的文本转换,涵盖了日常开发中常见的需求...
php正则表达式笔记,本人手写的 //----正则匹配----- $p = '/example/' $str = "I am an example"; preg_match($p,$str); //如果$str中含有$p两个/中间的内容(内容不要求完全相同,要求为包含于关系),则返回真 //...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。它在编程、数据分析、文本挖掘等领域有着广泛的应用。本教程旨在帮助你深入理解和熟练掌握正则表达式,通过学习,你可以有效地查找、...
### Python正则表达式详解 #### 一、正则表达式概述 正则表达式(Regular Expression)是一种在计算机科学领域广泛使用的模式匹配工具。它主要用于处理文本数据,包括搜索、替换以及提取文本中的特定模式。许多...
### 正则表达式大全笔记总结 #### 一、引言 正则表达式是一种用于匹配字符串的强大工具,在数据处理、文本分析等场景下极为常见。本文将对几个常见的正则表达式应用场景进行总结,包括中国电话号码验证、邮政编码...
基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码....
这篇入门笔记实例将带你深入了解正则表达式的使用。 1. **正则表达式基础** - **模式定义**:正则表达式由特殊字符(元字符)和普通字符组成,用于描述文本模式。 - **创建方式**:可以使用`/pattern/flags`或`...
《精通正则表达式》是一本深入探讨正则表达式的权威书籍,英文版结合中文目录,为学习者提供了便利。正则表达式是计算机科学中用于模式匹配和文本操作的强大工具,广泛应用于文本处理、数据提取、编程语言、网页爬虫...