zoukankan      html  css  js  c++  java
  • 正则重温(学习笔记)

    好久没自己写正则了,重新学习~~

    1、创建正则表达式与修饰符

    a) 创建正则表达式

    var  re=new RegExp(“\w+”)  或 var  re=/w+/

    b)  RegExp的修饰符

    i – 用来执行不区分大小写的匹配

    var  patt1=/route/i;

    g – 用于执行全文的搜索(不是找到第一个就停止,而是找到所有的匹配)

    var  patt1=/is/g;

    m – 执行多行匹配

    结合起来使用:

    var patt1=/is/gi;

    2、RegExp 对象方法

    a)    exec()

    搜索字符串中的指定值,返回被指定的值,如果没有发现匹配则返回null

    var patt1=/e/;

    patt1.exec(‘this is eggle’);   返回e

    b)   test()

    搜索字符串指定的值,根据结果返回真或假

    var patt1=/e/;

    patt1.test(‘this is eggle’);   返回true

    3、支持正则表达式的String 对象方法

    1)    search() 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,如果没有则返回-1,有就返回所在位置

    语法:string.search(searchValue)

    例: var str="Mr. Blue has a blue house";
    str.search(/blue/i);   结果: 4

    2)   match() 用于在字符串中检索指定的值,或找到一个或多个正则表达式的匹配,结果返回一个array,没有匹配结果则返回null

    语法: string.match(regexp)

    Var  str=”The rain in SPAIN stays mainly in the plain"

    Var n=Str.match(/ain/gi) 结果:n= ain,AIN,ain,ain

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

    语法: string.replace(searchVal,newVal)

    例: var str="Mr Blue has a blue house and a blue car";

    var n=str.replace(/blue/gi, "red"); 结果: Mr red has a red house and a red car

    4)   split() 用于把一个字符串分割成字符串数组,结果返回一个数组,被用来分割的不会显示在返回的结果中

    语法: string.split(separator,limit)(limit是指数组返回的最大长度)

    例: var str='How are out you think ?'
    str.split(/o/gi,3);
    结果: ["H", "w are ", "ut y"]

    4、方括号

    用于查找某个范围内的字符

    [abc]—查找方括号之间的任何字符串

    [^abc] – 查找不在方括号之间的字符

    [0-9] –查找任何0-9的数字

    (red|blue|green) – 查找任何指定的选项

    5、元字符

    元字符

    描述

    .

    查找单个字符,除了换行符和行结束符

    w

    查找单词字符

    W

    查找非单词字符

    d

    查找数字

    D

    查找非数字字符

    s

    查找空白字符

    S

    查找非空白字符

    

    匹配单词边界

    B

    匹配非单词边界

    查找null字符

    查找换行符

    f

    查找换页符

    查找回车符

    查找制表符

    v

    查找垂直制表符

    xxx

    查找以八进制数xxx 规定的字符

    xdd

    查找以十六进制数dd规定的字符

    uxxxx

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

    6、量词(被匹配的假定为n, /n/)

    量词

    描述

    n+

    匹配任何包含至少一个n 的字符串,例: /n+/ 匹配”mounth”

    n*

    匹配任何包含0次、或1次、或多次n的字符串,例 /bo*/ 匹配”booooo”,匹配”bird”,但是不匹配”goooo”

    n?

    匹配任何包含零个或一个n 的字符串,例: /e?le?/ 匹配”angel”

    n{x}

    匹配包含x 个n的序列字符串,例/a{2}/ 匹配”caaady” 的前’aa’

    n{x,}

    x是正整数,匹配n出现至少出现x次,例/a{2,}/ 匹配”caaady” 的’aaa’

    n{x,y}

    x,y为正整数,n至少出现x次,至多出现y次,例/a{2,4}/ 匹配”caaaaa”的”aaaa”

    n$

    匹配n结尾的字符串

    ^n

    匹配开头为n 的字符串

    ?=n

    匹配任何其后紧接指定字符串n的字符串

    ?!n

    匹配任何其后没有紧接指定字符串n的字符串

  • 相关阅读:
    Educational Codeforces Round 15 C. Cellular Network(二分)
    HDU 1044 Collect More Jewels(BFS+DFS)
    NBOJv2 Problem 1009 蛤玮的魔法(二分)
    HDU 1016 Prime Ring Problem(经典DFS+回溯)
    HDU 2181 哈密顿绕行世界问题(经典DFS+回溯)
    OpenCV学习笔记——滑动条开关
    廖雪峰Java15JDBC编程-3JDBC接口-3JDBC更新
    廖雪峰Java15JDBC编程-3JDBC接口-1JDBC简介
    廖雪峰Java15JDBC编程-2SQL入门-2insert/select/update/delete
    廖雪峰Java15JDBC编程-2SQL入门-1SQL介绍
  • 原文地址:https://www.cnblogs.com/xcdl/p/7427688.html
Copyright © 2011-2022 走看看