`
lmh2072005
  • 浏览: 113807 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

正则表达式笔记

    博客分类:
  • js
阅读更多

 

使用RegExp的显式构造函数,语法为:new RegExp("pattern"[,"flags"])。 

使用RegExp的隐式构造函数,采用纯文本格式:/pattern/[flags]。 

pattern部分为要使用的正则表达式模式文本,是必须的。

在第一种方式中,pattern部分以JavaScript字符串的形式存在,需要使用双引号或单引号括起来,这时首尾不需要'/'。

在第二种方式中,pattern部分嵌套在两个“/”之间,不能使用引号。

由于JavaScript字符串中的“\”是一个转义字符,因此,使用显式构造函数创建RegExp实例对象时,应将原始正则表达式中的“\”用“\\”替换

如:var reg1 = new RegExp("\\d{2}"); 

      var reg2 = /\d{2}/;  

     var  reg = new RegExp("^(\\+|-)?\\d+(\.\\d{0,2})?$");   //可有两位小数的浮点数

含变量的时候:

      var a = "abc",

      reg3 = new RegExp("^\\d" + a + "\\d$");

由于正则表达式模式文本中的转义字符也是“\”,如果正则表达式中要匹配原义字符“\”,在正则表达式模式文本中要以“\\”来表示,当使用显式构造函数的方式创建RegExp实例对象的时候,就需要使用“\\\\”来表示原义字符“\”。 

var reg = new RegExp(\\\\)。 

 

 

下面再复习下最常用的 test exec match search  replace  indexOf  split 7个方法

var str = "" ,str1 = ""; //字符串

var reg = new RegExp();  //reg对象

var x = [] ;  //返回的数组

g  //全局匹配

i   //不区分大小写

m //多行模式匹配

 

 

1.test  

    格式: reg.test(str);     // 返回true 或false;

      eg:   /(a)\w+/.test("abcde")    //返回true;

 

2.exec

 

   格式:reg.exec(str);    //返回一个数组  数组第一项为匹配的表达式  如果有匹配的子表达式则数组第二项为子表达式 以此类推。exec永远返回与第一个匹配相关的信息,不管有没有g

 

     eg: /a(b)\w+/.exec("abcdef");  //返回的数组 x[0] = “abcdef” ,x[1] = "b";

  /ab\w+/g.exec("abcde.fabc")  //返回"abcde"

 

3.match

 

   格式:str.match(reg);   //返回一个数组  如果没有全局标识符g 则和exec一样,第一项 为匹配的表达式, 如果有匹配的子表达式则数组第二项为子表达式 以此类推。如果reg有全局标识符g  则 第一项 为第一个匹配的表达式,第二项 为第二个匹配的表达式 以此类推。

 

    eg :  "abcdef.abc".match(/a(b)\w+/);       返回 x[0] = “abcdef”,x[1] = "b";

 

             "abcdef.abc".match(/a(b)\w+/g);    返回 x[0] =  “abcdef” ,x[1] = "abc";

 

有关exec  和 match  的区别   这里有篇文章说的比较详细:http://makemyownlife.iteye.com/blog/395172

 

4.search   

 

   格式: str.search(reg);   返回从字符串中寻找指定值的位置,如果没找到则返回-1。它将忽略标志g。它同时忽略regexp 的lastIndex 属性,并且总是从字符串的开始进行检索。

 

     eg:   "abcdef".search(/a/)   //返回0

 

5. indexOf

 

格式:str.indexOf(str1[,startIndex]) ; 返回从字符串中寻找指定值的位置,如果没找到则返回-1,可以指定开始检索的位置 ,和search的区别是str1不能是正则表达式。

 

6.replace  

 

    格式:str.replace(reg,str1) ;    返回 替换后的字符串   支持 i、g、m

 

     eg:  "abcdef".replace(/a/,"b")  返回:“bbcdef”;

            "abcdefaa".replace(/a/ig,"b")   返回:“bbcdefbb”;

     当str1为function时 返回的$1为正则表达式相匹配的文本,$2为子表达式匹配的文本,依此类推。

     当str1为$1$2...时,则$1$2分别匹配相对应的子表达式。

     eg:

           var a = "abcealsk";

           var c1 = a.replace(/(ab)c/ig,function($1,$2){return $1 + $2});  //返回:abcabealsk

           var c2 = a.replace(/(ab)c/ig,"$1$2");   //返回:ab$2ealsk   //此时$2没有对应的字表达式被当做字符串返回了。

    比如常用的去掉字符串两端的空格

    var a = "  a a ";
    var b = a.replace(/(^\s*)|(\s*$)/g,'');  或 var b = a.replace(/^\s*(\w+.*\w+)*\s*$/,'$1');

    b为‘a a’

 

7.split 

 

   格式:str.split(reg);  返回按照reg划分后的数组  支持i

 

      eg:  "a_b_B_d_e".split(/b/i);   返回:[a_,_,_d_e]


分享到:
评论

相关推荐

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

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

    正则表达式笔记归纳

    ### 正则表达式基础知识与应用 #### 一、正则表达式的定义及用途 正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助我们实现字符串的搜索、替换等操作。它在多种编程语言中都有应用,尤其是在...

    Python正则表达式笔记

    Python正则表达式笔记 正则表达式是 Python 中的一种强大工具,用于匹配和处理字符串。下面是 Python 正则表达式笔记中的一些重要知识点: 1. 导入模块:在使用正则表达式之前,需要导入 re 模块。import re 2. ...

    js正则表达式笔记,直接运行

    标题与描述中的“js正则表达式笔记,直接运行”明确指出这是一份关于JavaScript正则表达式的笔记,其中包含了可以直接执行的代码示例。正则表达式在编程中是一种非常强大的工具,用于处理字符串模式匹配、搜索和替换...

    java正则表达式学习笔记

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

    正则表达式笔记.docx

    python正则表达式笔记

    [小小明]Python正则表达式全套笔记v0.3(1.8万字干货)

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

    正则表达式笔记+源码!!!!!!

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索替换等场景。在IT行业中,熟练掌握正则表达式是提高工作效率的关键技能之一。 首先,我们来看看...

    正则表达式学习笔记

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

    Java正则表达式笔记.pdf

    Java正则表达式是编程语言Java中用于处理文本的强大工具,它允许开发人员根据特定模式匹配、搜索和替换文本。在Java 2中引入的`java.util.regex`包提供了全面的支持,使得正则表达式的使用变得更为便捷。本文将探讨...

    javascript正则表达式学习笔记

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

    java正则表达式笔记

    本笔记将深入探讨正则表达式的基础概念、语法特点以及在Java中的应用。 1. **正则表达式基础** - **元字符**:正则表达式中的特殊字符,如`.`、`*`、`+`、`?`、`^`、`$`、`\`、`|`、`(`、`)`等,它们在正则表达式...

    正则表达式函数笔记.php

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

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

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

    正则表达式大全笔记总结

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

    正则表达式系统教程.RAR

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

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

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

Global site tag (gtag.js) - Google Analytics