正则表达式Regular Expression (RegExp)详解_正则表达式

正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE)。

正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

一、字符类

1、字符类:可以匹配他所包含的任意字符

    eg:/[abc]/和字母"a"、"b"、"c"中的任意一个匹配

2、否定字符类: 通过"^"字符定义否定字符类,他匹配所有不包含在方括号内的字符。定义否定字符类时,将一个"^"符号作为左括号内的第一个字符。

    eg:/[^abc]/匹配"a"、"b"、"c"之外的所有字符。

3、\s : 匹配的是空格符、制表符和其他Unicode空白符;

    .  :  除换行符和其他Unicode行终止符之外的任意字符。

二、重复:

1、{n,m} 匹配前一项至少n次,但不能超过m次;

2、{n,} 匹配前一项n次或者更多次;

3、{n} 匹配前一项n次;

4、? 匹配前一项0次或者1次;

5、*  匹配前一项0次或者多次;

6、+ 匹配前一项1次或者多次 .

PS:非贪婪性重复---在待匹配的字符后面跟随一个问号即可。 "??" "+?"  "*?"

三、选择、分组和引用

1、"|" 分割供选择的字符

    eg:/ab|cd|ef/ 可以匹配字符串"ab"、也可以匹配字符串"cd"、还可以匹配字符串"ef"

2、"()":圆括号的作用:a.把单独的项组合成子表达式;b.在完整的模式中定义子模式;c.允许在同一正则表达式的后部引用前面的子表达式。

3、"(?:" 和 ")"进行分组,但不记忆与改组相匹配的字符

四、指定匹配位置:

1、匹配发生的合理位置,正则表达式的锚。

2、"^" 匹配字符串的开始

3、"$" 匹配字符串的结束

4、任意正则表达式都可以作为锚点。如果在符号"(?="和")"之间加入一个表达式,它就是一个先行断言。

5、负先行断言"(?!"和")"

五、修饰符:

1、i 不区分大小写

2、g 全局匹配

3、m 多行中执行匹配

六、RegExp方法

-------  String 方法  -------

1、search() 返回第一个与之匹配的字符串的位置;

2、repalce() 执行检索和替换操作  

    如果正则表达式设置了修饰符g,那么源字符串中所有与模式匹配的字符串都将替换成第二个参数指定的字符串;如果不带修饰符g,则只替换匹配的第一个子串。

3、match() 返回由匹配结果组成的数组

-------  RegExp方法 -------

4、exec()

5、test()

=======================    一些常用的正则表达式     ========================

1、删除首尾行的空白字符(包括空格符、制表符、其他Unicode空白符)

var pattern = /(^\s*)|(\s*$)/g ;
"  abc  def  ".replace(pattern,""); //执行结果是:"abc  def"
2、强密码:密码为8-12位,并且大写字母、小写字母、数字、特殊字符都包含

var strongRegExp = /^(?=.{8,12})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\W).*$/g ;
3、弱密码:密码为7-12位,并且包含大写字母、小写字母、数字中任意两项,且不包含特殊字符

var mediumRegExp = /^(?=.{7,12})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[1-9]))|((?=.*[a-z])(?=.*[1-9]))).*$/g ;

时间: 2024-11-30 03:46:27

正则表达式Regular Expression (RegExp)详解_正则表达式的相关文章

正则表达式零宽断言详解_正则表达式

正则表达式零宽断言: 零宽断言是正则表达式中的难点,所以本章节重点从匹配原理方面进行一下分析.零宽断言还有其他的名称,例如"环视"或者"预搜索"等等,不过这些都不是我们关注的重点. 一.基本概念: 零宽断言正如它的名字一样,是一种零宽度的匹配,它匹配到的内容不会保存到匹配结果中去,最终匹配结果只是一个位置而已. 作用是给指定位置添加一个限定条件,用来规定此位置之前或者之后的字符必须满足限定条件才能使正则中的字表达式匹配成功. 注意:这里所说的子表达式并非只有用小括号

linux grep正则表达式与grep用法详解_正则表达式

需要大家牢记:正则表达式与通配符不一样,它们表示的含义并不相同      正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理.本文以grep为例来讲解正则表达式. grep命令 功能:输入文件的每一行中查找字符串. 基本用法: grep [-acinv] [--color=auto] [-A n] [-B n] '搜寻字符串' 文件名 参数说明: -a:将二进制文档以文本方式处理 -c:显示匹配次数 -i:忽略大小写差异 -n:在行首显示行号 -A:After的意

比较全面的C 、Java、JavaScript中的正则表达式详解_正则表达式

什么是正则表达式? 正则表达式(Regular Expression) 就是用某种模式去匹配一类字符串的公式.如你要在一篇文章中查找第一个字是"罗"最后一个字是"浩"的三个字的姓名,即"罗 * 浩":那么"罗 * 浩"就是公式,也称作 模式(Pattern) ,这篇文章就是 要匹配的串( 或叫文本 text) .再如,你要检查输入的一个字符串是否是 126 邮箱的格式,你得制定一个规则去查检,这种规则就是正则表达式. 从入门开

正则表达式详解_正则表达式

正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 正则表达式可以干嘛? 1.数据有效性验证,可以对一个字符串进行测试,看该字符串是否符合某种规定. 2.替换文本,可以在文档中将指定的文字删除,或替换为其他文字. 3.根据字符串提取一个子字符串,用来在

正则表达式基本语法详解_正则表达式

正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符").模式描述在搜索文本时要匹配的一个或多个字符串. 1.正则表达式基本语法 两个特殊的符号'^'和'$'.他们的作用是分别指出一个字符串的开始和结束.例子如下: "^The":表示所有以"The"开始的字符串("There","The cat"等): "of despair$":表示所以以&q

Python正则表达式的七个使用范例详解_正则表达式

作为一个概念而言,正则表达式对于Python来说并不是独有的.但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别. 本文是一系列关于Python正则表达式文章的其中一部分.在这个系列的第一篇文章中,我们将重点讨论如何使用Python中的正则表达式并突出Python中一些独有的特性. 我们将介绍Python中对字符串进行搜索和查找的一些方法.然后我们讲讨论如何使用分组来处理我们查找到的匹配对象的子项. 我们有兴趣使用的Python中正则表达式的模块通常叫做're'. >>>

js正则表达式常用函数详解_正则表达式

一.js正则表达式之replace函数用法: 函数功能:replace函数返回根据正则表达式进行文字替换后的字符串的复制. 函数格式:stringObj.replace(rgExp, replaceText) 参数:字符串stringObj,rgExp正则表达式,replaceText所替换的内容 本模块涉及的内容包括字符串创建,正则表达式隐式创建对象,创建正则表达式,进行replace方法的使用匹配 示例代码: <html> <script language="javascr

JScript中正则表达式用法详解_正则表达式

呵呵,先罗嗦几句,去年用C#做了一个语法高亮的小东西,根据配制文件中的信息把所给代码格式化成HTML,使它能在网页上显示出和编辑器里一样的语法元素高亮的效果以及支持代码折叠.没错,就是和博客园上看到的类似啦.因为我当时使用的是MSN Space,它没有提供这项功能,只好自己写一个咯.     我使用的是C#进行编写,起初使用的是超级繁琐的for,while,switch,if等基本语句来判断关键字等等,大家莫笑话,本人愚笨当时还不知道正则表达式是何物,所以只能用这种土办法了,当然土办法还是有效果

Java 正则表达式详解_正则表达式

如果你不熟悉这个术语,那么"正则表达式"(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式. 正则表达式30分钟入门教程 常用正则表达式 许多语言,包括Perl.PHP.Python.JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级"搜索-替换"功能.那么Java又怎样呢?本文写作时,一个包含了用正则表达式进行文本处理的Java规范需求(Specification R