正则笔记

    //数值型正则匹配(分析:符号>整形>小数>科学计数法)
    var a=‘-123.321e1‘;
    console.info(a.match(/^(-?)(0|[1-9]\d*)(\.\d+)?([eE][-+]?\d+)?$/));

    //match:如果是全局匹配,那么是不支持分组的(查看不到分组信息);另外一般来说g和^ $是互斥的
    var aa0=‘[email protected],[email protected],[email protected]‘;
    //["[email protected]", "1000", index: 0, input: "[email protected],[email protected],[email protected]"],可以看到分组信息里的qq号码,但不是全局的,只有一条邮箱信息
    console.info(aa0.match(/(\d+)@qq.com/));
    //["[email protected]", "[email protected]"],匹配了所有的邮箱,但是却不能查看分组信息qq号码
    console.info(aa0.match(/(\d+)@qq.com/g));

    //RegExp:exec 支持同时使用全局和分组,虽然写了g但是默认情况下每次只查找一个
    var reg=new RegExp(/(\d+)@qq.com/g);
    //每次开始执行的索引值会保存到lastIndex上
    //console.info(reg.lastIndex);
    //console.info(reg.exec(aa0));
    //console.info(reg.lastIndex);
    //console.info(reg.exec(aa0));
    //console.info(reg.lastIndex);
    while(result=reg.exec(aa0)){//result是一个数组,result[0]是匹配结果,result[1]是分组一的结果
        //QQ邮箱账号:[email protected],QQ号:1000
        //QQ邮箱账号:[email protected],QQ号:3000
        console.info("QQ邮箱账号:"+result[0]+‘,‘+"QQ号:"+result[1])
    }

    //匹配ip 包含(0.0.0.0 255.255.255.255)
    //0-9 10-99 100-199 200-249 250-255
    //\d  [1-9]\d 1\d{2} 2[0-4]\d 25[0-5]
    //前面两个合并 [1-9]?\d,另外注意最后面两个的分段,为什么不是200-255(2[0-5]{2})分段,因为这样匹配不到像2[0-4][6-9]这样的数字
    //(?:)小括号中的?:表示该分组不再进行单独匹配
    var aa1=‘192.168.1.1‘;
    console.info(aa1.match(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)$/));

    //贪婪和懒惰
    //默认在匹配时候是贪婪模式,通过在匹配次数修饰符(*|?|+|{1,})后面添加?号可以改成懒惰模式(懒惰模式是在匹配成功的情况下尽可能少的匹配,不是不匹配)
    var aa2=‘httpserver‘;
    console.info(aa2.match(/https?(erver)?/));//httpserver
    console.info(aa2.match(/https??(erver)?/));//http

    //自定义匹配符[],如果是[^]表示取反
    var aa3=‘12345678910‘;
    alert(aa3.match(/1[2345]\d{9}/)); //12,[]中是单个字符匹配,相当于(2|3|4|5)

    //写表达式的时候先通过正常的格式来写表达式,特殊情况则分为多个部分,部分解决
    var aa4=‘<img src="src/images/addData.png" />‘;
    console.info(aa4.match(/<img\s+src=".+\.(png|jpe?g|gif)".+\/>/));
    aa4="<img alt=‘hello‘ src=‘src/images/addData.png‘ class=‘world‘/>";
    console.info(aa4.match(/<img.+src=["‘].+["‘].+[\/]?>/));
    aa4=‘<IMG alt="hello" SRC=src/images/addData.png>‘;
    console.info(aa4.match(/<img.+src=["‘]?.+["‘]?.*[\/]?>/i));
    aa4=‘图片1:<img src="src/images/addData.png"/> 图片2:<img alt="hello" src="src/images/addData.png" class="world"/> 图片3:<IMG alt="hello" SRC="src/images/addData.png" class="world">‘;
    console.info(aa4.match(/<img.+?src=["‘]?.+?["‘]?.*?[\/]?>/ig));

  

时间: 2024-08-26 08:27:26

正则笔记的相关文章

nginx正则笔记

正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行 flag标记有: * last 相当于Apache里的[L]标记,表示完成rewrite * break 终止匹配, 不再匹配后面的规则 * redirect 返回302临时重

js 正则笔记

instanceof RegExp //RegExp 是JS中的类,同Array类似.然而这个创建方法没有指定表达式内容 var re=new RegExp (); //最简单的正则表达式,将匹配字母a        re=new RegExp ("a");        //重载的构造函数,其第二个参数指定将不区分大小写       re=new RegExp ("a","i"); 其中,对于第二个参数,为可选参数,包括三种: g :全文查找:

nginx lua 正则笔记

ngx.re.match ngx.re.find ngx.re.gmatch ngx.re.sub ngx.re.gsub 看上面官方文档.

笔记-[正则]-正则表达式的常用例子.

常用的正则表达式的例子:  匹配中文:[\u4e00-\u9fa5] 行首行尾空格:^\s*|\s*$ Email:^\[email protected][a-z0-9]+(\.[a-z]+){1,3}$ 网址:[a-zA-z]+://[^\s]* QQ号:[1-9][0-9]{4,9} 或者 ^[1-9]\d{4,11}$ 邮政编码:[1-9]\d{5} 身份证:[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x 正则表达式的一个面试题:删除字符串首尾的空格 <scrip

笔记-[正则]-正则表达式的总结.

在JS中的正则表达式总结: 什么是正则表达式?正则表达式是一种操作和匹配字符串的规则. 正则也是JS内部系统对象的其中一个对象,有几个常用的方法. 正则表达式的写法: 简写:var re=/正则表达式的内容/; 完整:var re=new RegExp(); 注:在一般情况下,我们使用的是简写的正则写法,但是在正则需要传参(传入外部变量)的时候一定是使用完整的正则表达式才可以做到. 正则表达式对象的常用方法如下: (1)test()方法:格式:正则.test(字符串)    //如果匹配成功则返

python 正则使用笔记

python正则使用笔记 def remove_br(content): """去除两边换行符""" content = content.replace("<br>", "<br />").replace("<br >", "<br />") while re.findall("^<br />|&l

python学习笔记(24)正则

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 原链:http://www.cnblogs.com/vamei/archive/2012/08/31/2661870.html 笔记:一半的笔记,半吊子水平 #第25讲 re正则 #语法: #re.match(pattern, string, flags=0) #两个参数,pattern 匹配的正则表达式 str 需要正则匹配字符串 flag 大小写多行匹配 import re

[js笔记整理]正则篇

一.正则基本概念 1.一种规则.模式 2.强大的字符串匹配工具 3.在js中常与字符串函数配合使用 二.js正则写法 正则在js中以正则对象存在: (1)var re=new RegExp(正则表达式); (2)var re=/正则表达式/; 三.正则的基本写法 1.开始结束符 ^     $ 2.元字符 (1)任意字符 [abc] abc中的任意一个 (2)范围 [a-z] 字母a到c: [1-9] 数组1到9 (3)排除 [^a-z] 排除字母a-c (4)任意字符 . 3.量词 (1) {

随堂笔记之正则与HTML5新元素

在进入主题前,先插个网站https://www.processon.com/ ProcessOn是一个在线协作绘图平台,为用户提供最强大.易用的作图工具! 它可以很方便的在线简单绘制一些东西,让自己去具体理解. 正则表达式 今日的正则只是学习正则的简单使用.在HTML5的标签属性的强大面前,我们 已经可以不用去先学习javascript才能再去正则了,因为HTML5的input标签的 pattern可以实现标签的验证,近似取代复杂的javascript使用正则验证表单,在 未来一定会完全取代的.