正则表达式
一、概述
    验证
    网络爬虫。

概念:
    具有语法格式的字符串。

函数
    PCRE
    1、perl语言正则语法兼容。(java c)
    2、速度快,效率高。
    POSIX
    1、效率不高
    2、安全隐患。
    3、windows无法运行。

二、正则表达式的应用
    preg_match_all(string $pattern,string $subject,array $match)
    功能:正则匹配
    参数:
    pattern 正则表达式
    subject 要进行匹配的字符串
    match   匹配到的结果
    返回:匹配到的次数。

语法:
    - 定界符
    - 原子
    - 元字符
    - 模式修正符

- 定界符
      一个正则表达式必须有定界符。除了数字,字母、下划线,其他都可以作为定界符。而行业中最常用的定积分是 "/",定界符是成对出现的。
    - 原子
      原子是正则表达式的最小组成单位。一个正则表达式要想有意义,则至少有一个原子。 
      a、数字、字母、下划线,所有的打印字符都叫原子。
      b、非打印字符。
         \n 换行
      c、需要进行转义的字符。具有特殊含义的字符。例如:元字符
      d、具有特殊含义的原子
         \d 代表所有的数字
         \D 代表了所有的非数字

\w 数字、字母、下划线
         \W 非数字、字母、下划线

\s 代表了所有的空白
         \S 代表了所有的非空白

e、自定义原子表
         [] 指定原子的范围,例如:a-z 代表了所有的小写英文字母
                                 A-Z 代表了所有的大写英文字母
                                 0-9  代表了所有的数字
                     
            可以同时给出多个范围,多个范围之间不需要间隔符号。
            例如:a-z0-9
            在自定义原子表中 ^代表 非
      f、. 任意原子

元字符
      元字符是用来修饰原子的。
      * 代表被修饰的原子可以出现0次或者多次。
      + 代表被修饰的原子可以出现1次或者多次。
      ?代表被修饰的原子可以出现0次或者1次。

{m} 代表被修饰的原子可以出现m次。
      {n,m}  代表被修饰的原子可以出现最少n最多m次。
                 n<=出现的次数<=m
      {n,}   代表被修饰的原子可以出现最少n最对不限制
                 n<=出现的次数

|   或

^和\A 代表以^和\A修饰的字符的作为开始
      $和\Z 代表以$和\Z修饰的字符的作为结束

()
       - 子模式 
       - 改变匹配的范围
       - 反向引用

\b和\B \b代表字符边界,\B 代表了非字符边界

- 模式修正符
           模式修正符是用来修正正则表达式的。模式修正符是写在正则表达式的定界符外面的。
      
           i :使正则表达式不区分大小写。

正则验证邮箱原理图片:

正则验证注册原理图片

 

【正则】day01的更多相关文章

  1. Javascript正则对象方法与字符串正则方法总结

    正则对象 var reg = new Regexp('abc','gi') var reg = /abc/ig 正则方法 test方法(测试某个字符串是否匹配) var str = 'abc123'; ...

  2. C#-正则,常用几种数据解析-端午快乐

    在等待几个小时就是端午节了,这里预祝各位节日快乐. 这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢. 开始吧 ...

  3. Javascript 中 with 的替代方案和String 中的正则方法

    这几天在升级自己的MVVM 框架,遇到很多小问题,就在这里统一解决了. with 语法 在代码中,要执行这么一个函数 function computeExpression(exp, scope) { ...

  4. JavaScript与PHP中正则

    一.JavaScript 有个在线调试正则的工具,点击查看工具.下面的所有示例代码,都可以在codepen上查看到. 1.创建正则表达式 var re = /ab+c/; //方式一 正则表达式字面量 ...

  5. Java正则速成秘籍(一)之招式篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  6. Java正则速成秘籍(二)之心法篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  7. Java正则速成秘籍(三)之见招拆招篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  8. python浅谈正则的常用方法

    python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...

  9. [Python基础知识]正则

    import re str4 = r"^http://qy.chinahr.com/cvm/preview\?cvid=\w{24,25}&from=sou&gtid=\w{ ...

随机推荐

  1. verilog问题二三

    assign语句叫连续赋值语句?为什么要叫连续,是由于等式右边是顺序执行的还是因为在执行赋值的过程中,赋值的先后顺序(实际上或者概念上)是有顺序的? 同步(复位)与异步(复位)的具体内涵:异步信号定义 ...

  2. 转载:如何严格限制session在30分钟后过期!

    如何严格限制session在30分钟后过期!1.设置客户端cookie的lifetime为30分钟:2.设置session的最大存活周期也为30分钟:3.为每个session值加入时间戳,然后在程序调 ...

  3. 【JS】JS实现Html转义和反转义(html编码和解码)的方法总结

    1.JS实现html转义和反转义主要有两种方式: 1).利用用浏览器内部转换器实现html转义: 2).用正则表达式实现html转义: 2.封装的JS工具类: var HtmlUtil = { /*1 ...

  4. Vue ---- ajax cookies 插件安装 跨域问题 element-ui bootscript 导入

    目录 补充: 流式布局样式 Django国际化配置 Django的TODO注释 Vue的ajax插件:axios 安装 配置 如何使用? Vue的cookies插件:cookies 安装: main. ...

  5. 数据防泄漏 | 禁止PrintScreen键

    在数据防泄漏软件,通常会禁止 PrintScreen 键,防止通过截屏来将数据保存为图片而导致泄密. 这类软件如果想要实现是比较简单的,但是想要将功能做的强大些,还是需要下功夫的.以前使用过一款数据防 ...

  6. 如何将两个/多个PDF文件合并成一个?

    原文链接:https://docsmall.com/blog/how-to-merge-pdf 工作中我们总会遇到将PDF合并的问题,比如: 多次扫描的PDF文件,需要合并到一个 PDF文件需要追加一 ...

  7. jemalloc内存占用问题

    最近,有部分越南的服务器内存不断上涨,怀疑是内存泄漏,因为框架提供的内存报告里,C内存和Lua占用内存都不大,和ps里看的差好多.总内存在12G左右,C和Lua的加起来约4G,两者相差了8G 经过一番 ...

  8. Scala,Java,Python 3种语言编写Spark WordCount示例

    首先,我先定义一个文件,hello.txt,里面的内容如下: hello sparkhello hadoophello flinkhello storm Scala方式 scala版本是2.11.8. ...

  9. 二叉查找树的实现与讲解(C++)

    注:这篇文章源于:https://mp.csdn.net/postedit/99710904, 无需怀疑抄袭,同一个作者,这是我在博客园的账号. 在二叉树中,有两种非常重要的条件,分别是两类数据结构的 ...

  10. 在python中实现随机选择

    想从一个序列中随机抽取若干元素,或者想生成几个随机数. random 模块有大量的函数用来产生随机数和随机选择元素.比如,要想从一个序列中随机的抽取一个元素,可以使用random.choice() : ...