`
王之子
  • 浏览: 105704 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JavaScript正则表达式和模式匹配

阅读更多
元字符

+ :元字符规定其前导字符必须在目标对象中连续出现一次或多次。
* :元字符规定其前导字符必须在目标对象中出现零次或连续多次。
? :元字符规定其前导对象必须在目标对象中连续出现零次或一次。
\s :用于匹配单个空格符,包括tab 键和换行符。
\S :用于匹配除单个空格符之外的所有字符。
\d :用于匹配从0 到9 的数字。
\w :用于匹配字母,数字或下划线字符。
\W :用于匹配所有与\w 不匹配的字符。

(说明:我们可以把\s 和\S 以及\w 和\W 看作互为逆运算。同样,我们也可以把“^”和“$”以及“\b”和“\B”看作是互为逆运算的两组定位符

定位符

^ :定位符规定匹配模式必须出现在目标字符串的开头。
$ :定位符规定匹配模式必须出现在目标对象的结尾。
\b :定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一。
\B :定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。

/fo+/
因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或者
“football”等在字母f 后面连续出现一个或多个字母o 的字符串相匹配。

/eg*/
因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e 后面连续出现零个或多个字母g 的字符串相匹配。

/Wil?/
因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者 “Wilson”,等在字母i 后面连续出现零个或一个字母l 的字符串相匹配。

/^hell/
因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以 “hell”, “hello”或
“hellhound”开头的字符串相匹配。

/ar$/
因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。

/\bbom/
因为上述正则表达式模式以“\b”定位符开头,所以可以与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。

/man\b/
因为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以 “human”, “woman”或“man”结尾的字符串相匹配。

字符类(“^”、“-”、“\”

/[^A-C]/
上述字符串将会与目标对象中除A,B,和C 之外的任何字符相匹配。一般来说,当“^”出现在 “[]”内时就被视做否定运算符;而当“^”位于“[]”之外,或没有“[]”时,则应当被视做定位符。

 

[A-Za-z0-9!#&*+=?_-] 匹配模式 “[]” 里面的特殊字符(*+?)并不是元字符


/Th\*/
上述正则表达式将会与目标对象中的“Th*”而非“The”等相匹配。反斜杠“\”表示转义字符序列,比如“\*”表示字符*,“\n”表示换行。

下列式子表示可以匹配3 个数字或者4 个小写字母:
var filter =/\d{3}|[a-z]{4}/;

还有一个'|',表示"或"操作:

"hi|hello":表示一个字符串里有"hi"或者"hello";
"(b|cd)ef":表示"bef"或"cdef";
"(a|b)*c":表示一串"a""b"混合的字符串后面跟一个"c";

'.'可以替代任何字符:

"a.[0-9]":表示一个字符串有一个"a"后面跟着一个任意字符和一个数字;
"^.{3}$":表示有任意三个字符的字符串(长度为3个字符);

匹配模式

/jim{2,6}/
上述正则表达式规定字符m 可以在匹配对象中连续出现2-6 次,因此,上述正则表达式可以同jimmy 或jimmmmmy 等字符串相匹配。

 

 

 

 

运算顺序优先级

 

依然遵循从左到→右的运算规则

 

 

( )  圆括号因为是内存处理所以最高

* ? +  { } 重复匹配内容其次

^ $ \b 边界处理第三

|  条件处理第四

最后按照运算顺序计算匹配

 

 

补充:JavaScript RegExp 对象参考手册

 

个人主页: https://plus.google.com/+sherlockwang/posts

 

原文链接:http://woqilin.blogspot.com/2012/09/javascript.html

分享到:
评论

相关推荐

    使用正则表达式的模式匹配

    JavaScript的RegExp类表示正则表达式,而String和RegExp都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。 ECMAScript v3对JavaScript正则表达式进行了标准化。JavaScript 1.2实现了ECMAScript v3...

    正则表达式大全 正则表达式 模式匹配 Javascript

    关键字:正则表达式 模式匹配 Javascript 摘要:收集一些常用的正则表达式。 正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里...

    常用java正则表达式

    如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...

    精通 JavaScript正则表达式

    正则表达式可以: •测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个...•根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字

    《学习正则表达式》高清扫描版 PDF

    通过匹配特定单词、字符和模式,读者很快就可以自己动手使用正则表达式匹配、提取和转换文本。正则表达式是程序员必备的强大工具,得到了各种Unix实用程序,以及Perl、Java、JavaScript、C#等编程语言的支持。读完...

    nodejs+字符串的模式匹配+正则表达式+判断获取字符串的某些需求

    正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。 语法 /正则表达式主体/修饰...

    正则表达式使用详解及使用实例

    简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    RegexApplication/Default.aspx 正则表达式类的应用 RegexApplication/GetPageHtmlData.aspx 获取网页的内容 第10章(/10/) ASPNETValidator/Compare.aspx 比较验证 ASPNETValidator/...

    正则表达式单行、多行模式简介(使用说明)

    目前常用正则表达式都有该使用选项,如:javascript 正则表达式,一般是:”/正则表达式匹配字符/修饰符“ ,最后一个”/” 后面是修饰符。然后,php也是类似的,c#,python等,一般调用正则表达式的匹配函数,都有...

    JavaScript正则表达式之后向引用实例代码

    贪婪、非贪婪与回溯PHP正则表达式的效率 回溯与固化分组正则表达式之回溯AS3 js正则表达式 反向引用(backreference)详解JavaScript正则表达式之分组匹配及反向引用php正则表达式的模式修正符和逆向引用使用介绍PHP...

    JavaScript正则表达式详解

    简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。其作用如下: 测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为...

    javascript 正则表达式.doc

    JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp...

    正则表达式简介(微软篇)

    关于正则表达式:正则表达式简介(微软篇)之一正则表达式 <br/>如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。 <br/>请回想一下在硬盘上是如何...

    JavaScript正则表达式

    JavaScript正则表达式 一、认识正则表达式 1、正则表达式是描述字符模式的对象,正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。 2、String和RegExp都定义了使用正则表达式进行强大...

    在PHP中使用与Perl兼容的正则表达式

    简单的说,正则表达式是一种可以用于模式匹配和替换的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例 如:Perl或PHP脚本语言。此外,JavaScript这种客户端的脚本语言也提供了对正则...

    php正则表达式

    Basic,Perl,JavaScript和PHP都支持正则表达式希望在这篇入门指导结束Mitchell(作者自己)可以让你在PHP中 能应用些基本正则表达式正则表达式是在各种各样语言中突出古怪特征中种但是由于它们看起来是很难个概念 所以...

    java正则表达式.docx

    如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...

    JavaScript--正则表达式

    JavaScript--正则表达式 正则表达式(regular expression)对象包含一个正则表达式模式(pattern)。...它具有用正则表达式模式去匹配或代替一个串(string)中特定字符(或字符集合) 的属性(properties)和方法(methods)。

    Java正则表达式详解

    如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...

Global site tag (gtag.js) - Google Analytics