`

正则表达式-----笔记

阅读更多
第七章 正则表达式

一、正则表达式的支持
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(1.8万字干货)

    Python正则表达式全套笔记v0.3 本文档是小小明个人笔记,涵盖了正则表达式的各个方面,包括各种模式、分组、断言、匹配、查找、替换和切割等。文档中提供了详细的正则匹配规则表,涵盖了基本字符规则、预定义字符集...

    文本三剑客之grep及正则表达式 -.pdf

    ### 文本三剑客之grep及正则表达式 #### 1. grep 命令简介 - **定义**:`grep` 是 Linux 和 Unix 系统中的一种强大的文本搜索工具,它能够使用正则表达式来搜索文本,并将匹配的行打印出来。其全称是 Global ...

    java正则表达式学习笔记

    ### Java正则表达式基础知识与应用 #### 一、引言 正则表达式是一种强大的文本处理工具,它能够帮助开发者高效地进行字符串的搜索、替换等操作。Java中的正则表达式支持广泛的标准和特性,是进行文本处理任务的理想...

    javascript正则表达式学习笔记

    这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...

    正则表达式学习笔记

    ### 正则表达式学习笔记 #### 一、正则表达式概述 正则表达式是一种强有力的模式匹配工具,广泛应用于各种编程语言中,用于文本处理。正则表达式允许用户定义复杂的查找模式,这对于数据验证、搜索和替换操作特别...

    6正则表达式笔记[借鉴].pdf

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配、搜索、替换和提取信息。它在软件开发中广泛应用于数据验证、文本处理、输入校验等场景。正则表达式通过特殊的语法和运算符,允许程序员构建灵活且...

    正则表达式笔记

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配、查找和替换操作。在Java中,正则表达式主要涉及到`java.lang.String`、`java.util.regex.Pattern`和`java.util.regex.Matcher`这三个类。下面我们...

    超经典正则表达式测试工具

    4. **学习正则的学习笔记**:可能包含一份详细的正则表达式学习资料,涵盖了基础概念如元字符、量词、字符类等,以及高级特性如分组、后向引用、预查等,方便用户系统学习。 5. **正则表达式参考手册**:可能提供了...

    PHP 笔记001 - 字符串、正则表达式

    正则表达式则是一种强大的文本匹配工具,它允许我们在字符串中搜索、匹配和提取特定的文本模式。 ### 字符串处理 PHP提供了丰富的字符串处理函数,从基本的字符操作到复杂的文本转换,涵盖了日常开发中常见的需求...

    正则表达式函数笔记.php

    php正则表达式笔记,本人手写的 //----正则匹配----- $p = '/example/' $str = "I am an example"; preg_match($p,$str); //如果$str中含有$p两个/中间的内容(内容不要求完全相同,要求为包含于关系),则返回真 //...

    正则表达式系统教程.RAR

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。它在编程、数据分析、文本挖掘等领域有着广泛的应用。本教程旨在帮助你深入理解和熟练掌握正则表达式,通过学习,你可以有效地查找、...

    python正则表达式详解笔记,python正则表达式教学.doc

    ### Python正则表达式详解 #### 一、正则表达式概述 正则表达式(Regular Expression)是一种在计算机科学领域广泛使用的模式匹配工具。它主要用于处理文本数据,包括搜索、替换以及提取文本中的特定模式。许多...

    java 银行卡 验证 正则表达式使用

    在Java编程语言中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作。在"java 银行卡 验证 正则表达式使用"这个主题中,我们将深入探讨如何利用正则表达式进行银行卡、手机号码和邮箱以及URL地址的...

    正则表达式大全笔记总结

    ### 正则表达式大全笔记总结 #### 一、引言 正则表达式是一种用于匹配字符串的强大工具,在数据处理、文本分析等场景下极为常见。本文将对几个常见的正则表达式应用场景进行总结,包括中国电话号码验证、邮政编码...

    基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip

    基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码....

    JS正则表达式入门笔记实例

    这篇入门笔记实例将带你深入了解正则表达式的使用。 1. **正则表达式基础** - **模式定义**:正则表达式由特殊字符(元字符)和普通字符组成,用于描述文本模式。 - **创建方式**:可以使用`/pattern/flags`或`...

    精通正则表达式(英文版+中文目录)

    《精通正则表达式》是一本深入探讨正则表达式的权威书籍,英文版结合中文目录,为学习者提供了便利。正则表达式是计算机科学中用于模式匹配和文本操作的强大工具,广泛应用于文本处理、数据提取、编程语言、网页爬虫...

Global site tag (gtag.js) - Google Analytics