背景

  正则表达式的用处十分广泛:字符串处理、输入验证等,特别是在爬取网页中对网页内容的清洗更需要正则。

正则表达式

  基本所有的语言都支持正则表达式,或者内置或者引入。正则的语法很多,但每种语言对正则支持的程度都不同(常用的语法规则基本都支持),这点需要格外注意。

元字符

  正则表达式有12个特殊的标点,也称为元字符。它们包括:$ ( ) * . ? [ \ ^ { |。

    正则表达式中照字面匹配这些元字符,需要在它们的前面加入一个反斜杠来进行转义。

  注意:元字符不包括右方括号 ]、连字号 -、右花括号 }。前两个字符只有在没有转义的 [ 之后才是元字符,} 只有在没有转义的 { 之后才是元字符。不要碰到一个标点字符就进行转义,尽管不会影响正则表达式的正确性。

一些栗子 

1.区分大小写:(?i)[A-F0-9] 可以匹配大小写A-F
2.单行和多行模式:(?s)单行模式,点号匹配换行符;(?m)多行模式
3.整个单词的边界:匹配 my cat is brown中的cat,不匹配category中的cat \bcat\b;反过来的话是 cat\B
4.由三个字符<(?:>开始的是一个非捕获分组,右括号<)>标记该分组的结束。非捕获分组不会破坏捕获分组的编号;另外,它性能较高;在非捕获分组中还可以使用模式修饰符
肯定型环视。My <b>cat</b> if furry.找到HTML粗体标记的文本,但不要标记:(?i)(?<=<b>)\w (?=</b>)。
肯定型逆序环视是唯一可以从右向左遍历目标文本的正则结构,其语法是(?<=text),text在不同的正则流派中不一样,但总是可以放入字面文本。
肯定型顺序环视的语法是(?=regex),regex表示你可以放入任何正则内容。
否定型环视。把肯定型环视中的=换成!,就构成了否定型环视

注意:逆序环视中的text在不同的正则流派中支持是不同的。Perl、Python、Ruby 1.9允许使用多选结构和字符类来把多个不同固定长度的字面字符串放入环视中。PCRE、Java允许在逆序环视中使用任意有限长度的正则表达式,即无限量词 * {n,} 不能使用。 .NET允许在环视中使用任何正则表达式。逆序环视用起来方便,但其速度很一般

通过“宽松排列模式”向正则表达式中添加注释,Java通过Pattern.COMMENTS或在正则表达式前面增加(?x)打开。注释以 # 开头

查找XML格式的标签:
速成方案:<[^>]*>
在属性值中允许出现 > : <(?:[^>'"]|"[^"]*"|'[^']*')*>
(X)HTML标签(灵活方案):</?([A-Za-z][^\s>/]*)(?:[^>'"]|"[^"]*"|'[^']*')*>
(X)HTML标签(严格方案):(?i)<(?:([A-Z][-:A-Z0-9]*)(?:\s [A-Z][-:A-Z0-9]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[-.:\w] ))?)*\s*/?|/([A-Z][-:A-Z0-9]*)\s*)>

  

更多专业前端知识,请上 【猿2048】www.mk2048.com

正则表达式总结及一些有用的例子相关推荐

  1. asp编程有用的例子

    asp编程有用的例子(一) 1.如何用Asp判断你的网站的虚拟物理路径 答:使用Mappath方法 < p align="center" >< font size ...

  2. 正则表达式工具_30种有用的正则表达式工具和资源

    正则表达式(通常称为regex)是一种模式,由用于匹配特定字符串集的规则组成. 它们非常强大,并且您会遇到的大多数编程语言都需要它们,尤其是在需要扫描和匹配上下文以采取进一步措施时. 这是一个简单的正 ...

  3. 精通正则表达式的 12 个有用资源

         任何开发项目,不管使用何种编程语言,经常都需要从给定的数据中提取一些值然后进行验证.例如输入的校验.过滤 URL 变量之类.而正则表达式用来处理这样的任务可以说是轻而易举,而且代码量很少.另 ...

  4. php curl与正则表达式抓取网页数据的例子

    php使用curl和 正则表达式抓取网页数据示例,这里是抓取某网站的小说. 利用 curl和正则表达式做的一个针对磨铁中文网非vip章节的小说抓取器,支持输入小说ID下载小说. 依赖项:curl 可以 ...

  5. ABAP通过正则表达式提成字符串中的数字例子

    下面程序的场景是如何从字符串 'Log Attributes 0.5( 0 ) ( 43.56 % Available )'中提取数字,并输出. Report zz_test. data : lv_s ...

  6. 英文简历中关于项目经验的一些有用的例子

    这是从简历库中找出来的一些关于项目经验方面的材料,都是经过美国人修改过的,应该没有语法错误,希望能对求职写简历的人有所帮助. CLIENT: Major Healthcare and Technolo ...

  7. javascript:正则表达式、一个表单验证的例子

    阅读目录 本文内容: 正则表达式: 利用正则表达式进行表单验证的例子: 回到顶部 本文内容: 正则表达式 正则表达式的使用方法 正则表达式的特殊匹配字符 正则表达式修饰符 利用正则表达式进行表单验证的 ...

  8. 艾伟:正则表达式30分钟入门教程

    本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它. 如何使用本教程 最重要的是--请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在3 ...

  9. 58.最全正则表达式教程,最好正则表达式教程

    正则表达式是什么? 字符是计算机软件处理文字最基本的单位,可以是字母,也可以是数字,标点符号,空格,换行符,汉字等等. 字符串是0个或更多个字符的序列.文本也就是文字,字符串.说某个字符串匹配某个正则 ...

最新文章

  1. Linux下如何实现用户的集中管理(NIS服务器的高级配置)
  2. yum mysql mariadb 目录_CentOS用yum安装、配置MariaDB
  3. 【音频处理】Adobe Audition 快捷键设置
  4. 单链表按顺序插入节点
  5. tensorflow基本教程
  6. Bookdown平台分享了哪些书籍,如何使用Bookdown分享书籍
  7. Ios开发之定位CLLocationManager
  8. win8计算机里没有用户,win8.1系统没有选择切换账户菜单怎么办|win8.1系统切换用户的方法...
  9. 解决问题:UserWarning: Matplotlib is currently using agg, which is a non-GUI backend.
  10. python捕获特定类型异常的保留字_python异常处理结构中用来捕获特定类型异常的保留字是_以下选项中Python用于异常处理结构中用来捕获特定类型的异常的保留字是......
  11. vue省市区三级选择的实现
  12. 电脑维修之——笔记本电脑将光驱替换为硬盘
  13. S7-PLCSIM Advance ,解决 Error Code: -30,LicenseNotFound问题解决和期限21天限制的问题,对版本V1.0 V2.0 V3.0有效
  14. c语言输出方框□怎么回事_C语言打印数据的二进制格式-原理解析与编程实现
  15. 新能源汽车——动力电池
  16. 有哪些办法可以将ip地址更换?
  17. 【苹果推??iMessage群发设置内容参数】什么是苹果推信?什么是苹果推?什么是日历推
  18. 从零搭建符合自己需求的开发环境
  19. Python对百亿条(100GB)数据进行查重
  20. STM32入门-区别ORD,BSRR,BRR寄存器

热门文章

  1. go语言服务器运行,Go语言实现Web服务器
  2. element手机验证格式_基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)...
  3. asynchttpclient 超时_dnf这才是混子的毕业套装,却发现超时空漩涡不买账!
  4. java中对象字节数_JAVA中求解对象所占字节大小
  5. Windows编程初步(三)【说明:有敏感字眼已全删,不知道为啥还审核不通过】
  6. FPGA(5)--VHDL--10十进制计数器及7段显示译码器
  7. Java构建子类对象时的顺序
  8. mysql 中 and和or 一起使用和之间的优先级
  9. python学习第三十二节(进程间通信、进程池、协程)
  10. Gentoo使用sudo