zoukankan      html  css  js  c++  java
  • 正则表达式学习(一)

      以前看到一大串符号如这样的/^[a-z]+s+d+$/g,就知道是正则表达式,但是具体代表什么意思,一直没去深究过.今天趁着工作上稍微的清闲,来探索一下.

    这里以JavaScript中的正则表达式为例.

    正则表达式两种写法:

      var reg = new RegExp("e");//RegExp对象是一个预定义了属性和方法的正则表达式对象;

      var reg1 = /e/;

    常用的是第二种写法,接下来也就第二种进行探索

    使用字符串方法:search()和replace() 用法:字符串.方法()

      search()方法用于检索字符串中指定的字符串,或检索与正则表达式相匹配的子字符串,并返回子字符串的起始位置,检索不到返回-1.

      实例: var str = "Hello World";

         var n = str.search(/world/i);//这里的world是一个模式(用于检索),i是一个修饰符(不区分大小写).

         var n1 = str.search("World");//语法:StringObj.search(RegExp),对全局和大小写敏感

      输出结果为:6

      replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的字符串

      实例: var str = "Hello World!";

         var res = str.replace(/world/i,"Java");

         var res1 = str.replace("World","Java");

      输出结果为: Hello Java!

      正则表达式修饰符:

                i  执行对大小写不敏感的匹配;

                g  执行全局匹配(查找所以匹配,而非在找到第一个后停止);

                m  执行多行匹配;

      正则表达式模式:

            表达式: [abc]  查找方括号之间的任何字符;

                [0-9]  查找任何从0至9的数字;

                (x|y)  查找任何以|分割的选项;

            元字符: d  查找数字;

                s  查找空白字符;

                  匹配单词边界;

                uxxxx 查找以十六进制数xxxx规定的Unicode字符;

            量词:  n+  匹配任何包含至少一个n的字符串;

                 n*  匹配任何包含零个或者多个n的字符串;

                 n?  匹配任何包含零个或者一个n的字符串;

      RegExp对象的方法:RegExp.方法()

         test()方法:用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回true,否则返回false;

         实例:  var rep = /e/;

              var res = rep.test("Hello World!");

              var res1 = /e/.test("Hello World!");        

         输出结果为: true

         exec()方法:用于检索字符串中的正则表达式的匹配.该方法返回一个数组来存放匹配的结果,如果未找到匹配,则返回null;

         实例:  /e/.exec("Hello World!");

         输出结果为: e

         compile()方法:改变RegExp,既可以改变检索模式,也可以改变第二个参数

         实例:  var rep = /e/;

              var res = rep.test("Hello");

              rep.compile("d");

              var res1 = tep.test("Hello");

          输出结果为: true,false

  • 相关阅读:
    oracle提交commit后回退恢复
    jQuery toggle() 方法 : 切换隐藏和显示
    sql server vs mysql
    Redis学习
    【转发】c#做端口转发程序支持正向连接和反向链接
    IKVM
    注册表
    解决VS2010自带的C/C++编译器CL找不到mspdb100.dll的问题
    【转载】Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration info
    Openwrt路由器上开发微信公众号应用
  • 原文地址:https://www.cnblogs.com/goujh/p/8479685.html
Copyright © 2011-2022 走看看