一、正则表达式中包括的元素

1、原子(普通字符:a-z A-Z 0-9 、原子表、 转义字符)

2、元字符 (有特殊功能的字符)

3、模式修正符 (系统内置部分字符 i 、m、S、U…)

二、正则表达式中的“原子”

1、a-z A-Z _ 0-9  //最常见的字符

2、(abc) (skd)  //用圆括号包含起来的单元符合,匹配整体

3、[abcs] [^abd] //用方括号包含的原子表,匹配任意一个字符,原子表中的^代表排除或相反内容

4、转义字符

\d  包含所有数字[0-9]

\D  除所有数字外[^0-9]

\w  包含所有英文字符[a-zA-Z_0-9]

\W  除所有英文字符外[^a-zA-Z_0-9]
  \s   包含空白区域如回车、换行、分页等 [\f\n\r]

三、模式修正符

0、g 匹配所有符合条件

1、i 正则内容在匹配时候不区分大小写(默认是区分的)

2、m 在匹配首内容或者尾内容时候采用多行识别匹配

如:$preg = “/^a/m”; $str =”bb\naa”;可以匹配第二行a,$str双引号

3、s 将转义回车取消是为单行匹配如.( 匹配除换行符 \n之外的任何单字符) 匹配的时候,可以忽略\n

4、x 忽略正则中的空白

5、A 强制从头开始匹配(第一行)

6、D 强制$匹配尾部无任何内容如:匹配到\n之后

7、U 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束,

常用在采集程序上的正则表达式

如:$str="<a><c>"; $preg 01= ‘/<(.*)>/U’; 和 $preg02 = ‘/<.*?>/’; 结果都为:a

8、$str = ‘2009-01-01\2010\01-01’; $preg = ‘/2009(.*?)01\\1(01)(.*?)2010\\3(01)\\1(01)/’;

//1、//2、//3代表内存中第几个匹配过的内容

//js 正则表达式  汉字 匹配

1、在破解版调试模式下,正则表达式会出现错误匹配,应将其编译在EXE文件再看运行结果

2、暂时用到的正则表达式串:

^(\()?(一|二|三|四|五|六|七|八|九|十|[0-9]{1,4})(\))?(?!○)所有段落总纲 ,注意此处 句首符^非常宽松的匹配,只要在首句内都可匹配(如果去掉{1,4}试试便如此)
(?<=被查单位名称).+?(?= 经济性质)
[\一-\?]+ 非汉字
[\xb0-\xf7][\xa0-\xfe]  汉字
[^\xb0-\xf7][^\xa0-\xfe]  非汉字
([^\xB0-\xf7].)*  非汉字 更准确
(?<=被查单位名称
 )([\xB0-\xf7][\xA1-\xFE])+  取得被查单位名称后所表明的单位名称
(?<=被查单位名称
 )([\xB0-\xf7].)+
(?<=被查单位名称([^\xB0-\xf7].))([\xB0-\xf7].)+ 最优解
(?<=被查单位名称([-?]{2}))[^-?]+     最最优解    (?<=被查单位名称.{2})[^-?]+
(?<=检查类型([-?]{2}))[^-?]+
([^-?][^-?])+

(?<=检查实施时间([-?]{2}))20\d{2}\.1?\d.[123]?\d

20\d{2}年1?\d月[123]?\d日至20\d{2}年1?\d月[123]?\d日(?=的纳税情况)   稽查所属期限

(?<=地方教育发展费)[^\d]{0,2}\d+.?\d{0,2}  地方教育发展费 带冒号

(?<=纳税人基本情况).+?(?=(\s.{0,30}发现的问题))  取纳税人基本情况三段内容,看样子回车符也匹配空白符\s
(?<=纳税人基本情况).+?(?=二)

(?<=(一)发现的问题).+?(?=(二))

(?<=年度$).+(?=\s.{4,8}年度$)  取得2007年度的违法事实

\x20  稽查报告在处理之前先得用此将空格去除
.子程序 子_全文替换, 文本型, , 这是简单的正则表达式搜索代码,你可以根据需要进行改进。
.参数 欲被替换文本, 文本型
.局部变量 正则表达式, 正则表达式

正则表达式.创建 ("\x20", )
返回 (正则表达式.替换 (欲被替换文本, "", 1, , 真, 真))

要去掉段尾的标点符号,去除缴纳改为缴 为方便搜索  改二00八年度为2008年度

(?<=应....地方教育发展费).+?[元,,]     []也可当作右方向预搜索用 经检验,可当右预搜索的观点是错的,它只能当作2个单字节用

(?<=地方教育发展费|费:).+?(?=元|,|,)

^(\()?(一|二|三|四|五|六|七|八|九|十|[0-9])(\))?(、?)?(?=[\xaa-\xf7]|20)    大编号

严重观注: \d也会在易语言中匹配汉字某一半边

3、']' 字符如果不是第一项,则将结束一个列表。要在列表中匹配 ']' 字符,请将其放在第一项,紧跟在开始的 '[' 后面。

'\' 仍然作为转义符。要匹配 '\' 字符,请使用 '\\'。 
如果想在方括号表达式中包括连字符,则必须使用下述方法之一:

使用反斜杠将其转义: 
[\-]
将连字符放在括号列表的开始和结束位置。下面的表达式能匹配所有的小写字母和连字符: 
[-a-z]
[a-z-]
创建一个范围,其中开始字符的值小于连字符,而结束字符的值等于或大于连字符。下面两个正则表达式都满足这一要求: 
[!--]
[!-~]
同样,通过在列表开始处放置一个插入符(^),就可以查找所有不在列表或范围中的字符。如果该插入符出现在列表的其他位置,则匹配其本身,没有任何特殊含义
你可能认为下面的 JScript 和 VBScript 表达式将匹配位于一行的开始和结束位置且后跟一个或两个数字的 'Chapter' 或 'Section':/^Chapter|Section [1-9][0-9]{0,1}$/
"^Chapter|Section [1-9][0-9]{0,1}$"不幸的是,真正的情况是上面所示的正则表达式要么匹配位于一行开始处的单词 'Chapter',要么匹配一行结束处的后跟任何数字的 'Section'。如果输入字符串为 'Chapter 22',上面的表达式将只匹配单词 'Chapter'。如果输入字符串为 'Section 22',则该表达式将匹配 'Section 22'。但这种结果不是我们此处的目的,因此必须有一种办法来使正则表达式对于所要做的更易于响应,而且确实也有这种方法。可以使用圆括号来限制选择的范围,也就是说明确该选择只适用于这两个单词 'Chapter' 和 'Section'。不过,圆括号同样也是难处理的,因为它们也用来创建子表达式,有些内容将在后面关于子表达式的部分介绍。通过采用上面所示的正则表达式并在适当位置添加圆括号,就可以使该正则表达式既可以匹配 'Chapter 1',也可以匹配 'Section 3'。下面的正则表达式使用圆括号将 'Chapter' 和 'Section' 组成一组,所以该表达式才能正确工作。对 JScript 为:/^(Chapter|Section) [1-9][0-9]{0,1}$/对 VBScript 为:"^(Chapter|Section) [1-9][0-9]{0,1}$"
可以在正则表达式模式圆括号内部的前面使用 '?:'来防止存储该匹配供今后使用。对上面所示正则表达式的下述修改提供了免除子匹配存储的相同功能。对 JScript:/^(?:Chapter|Section) [1-9][0-9]{0,1}$/对 VBScript:"^(?:Chapter|Section) [1-9][0-9]{0,1}$"
a(b(?i)c)d 增加 i - IGNORECASE 模式,只对 c 起作用。表达式可以匹配 "abcd" 和 "abCd" 
 非捕获组 (?:xxx)
表达式 方向 说明 (?=xxx) 正向预搜索(向右) 正向预搜索,判断当前位置右侧是否能匹配指定表达式 (?!xxx) 正向预搜索否定,判断当前位置右侧是否不能够匹配指定表达式 (?<=xxx) 反向预搜索(向左) 反向预搜索,判断当前位置左侧是否能够匹配指定表达式 (?<!xxx) 反向预搜索否定,判断当前位置左侧是否不能够匹配指定表达式 记住,所有预搜索在易语言中必须是固定长数
独立表达式 (?>pattern)独立表达式所匹配的内容,与将它单独匹配时匹配的内容一致。不管之后的表达式是否匹配成功,独立表达式内部都不进行回退,都不会再次尝试匹配
条件表达式根据某个条件是否成立,来选择匹配 2 个可选表达式中的其中一个。--------------------------------------------------------------------------------说明可以用于条件表达式的条件有两种类型:指定分组(group)是否进行了捕获。 文本中当前位置是否可以与指定表达式匹配。 条件表达式的格式及说明:表达式 条件特点 条件说明 (?(1)yes|no) 条件为数字 分组1如果有捕获,则进行 yes 部分匹配,否则 no 部分 (?(?=a)aa|bbb) 条件为预搜索 如果当前位置右侧是 a,则进行匹配 aa,否则匹配 bbb (?(xxx)aa|bbb) 不与分组命名吻合 如果不与任何分组命名吻合,则视为 (?=xxx) 相同 (?(name)yes|no) 与分组命名吻合 如果与某分组命名吻合,则视为判断该分组是否进行捕获 另外:如果表达式为 RIGHTTOLEFT 模式,那么 (?(xxx)aa|bbb) 与 (?(?<=xxx)aa|bbb) 相同。 如果条件表达式只有一个选择项,那么这个选项是在条件成立时进行匹配。 如果条件表达式中,使用“|”进行分隔的选项多于2个,则只有第一个“|”被视为条件表达式选项分隔符。比如: (?(?=xxx)yes|no1|no2),条件成立时,匹配 yes 部分,否则匹配 "no1|no2"。

[转]js 正则表达式的更多相关文章

  1. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  2. 使用外部web组件-----easyUI、jQueryUI、Bootstrap、js正则表达式

    1.使用外部web组件,以Bootstrap为例 <head> <link rel='stylesheet'  href='bootstrap-3.3.0-dist/dist/css ...

  3. js正则表达式图形化工具-rline

    github地址:https://github.com/finance-sh/rline 在线demo: http://lihuazhai.com/demo/test.html 这是一个js正则表达式 ...

  4. Python之路-(js正则表达式、前端页面的模板套用、Django基础)

    js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  5. JS正则表达式大全

    转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...

  6. js正则表达式replace里有变量的解决方法用到RegExp类

    一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...

  7. JS正则表达式验证账号、手机号、电话和邮箱

    JS正则表达式验证账号.手机号.电话和邮箱 效果体验:http://keleyi.com/keleyi/phtml/jstexiao/15.htm 验证帐号是否合法 验证规则:字母.数字.下划线组成, ...

  8. 初识JS正则表达式

    初识JS正则表达式 看到的使用的正则表达式练习:http://www.cnblogs.com/wenanry/archive/2010/09/06/1819552.html PS:本文参考李炎恢JS笔 ...

  9. 常用JS正则表达式

    常用JS正则表达式 收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水 ...

  10. JS正则表达式大全(整理详细且实用)

    JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释, ...

随机推荐

  1. iOS开发系列

    因为最近面试了一些人,校招.初中级.高级.架构师,各种级别的,发现大家水平差异很大,有的高级的工程师很多问题都回答不上来,所以想梳理下iOS的知识点,写成一个系列,如果时间允许的话,会录制成视频放到网 ...

  2. PHP中域名绑定

    1.如果是集成环境,比如phpstudy则可以直接在工具中点击其他选项菜单->站点域名管理填好对应的域名和站点目录后点击新增,然后点击保存设置并生成配置文件,然后再打开hosts文件,增加对应的 ...

  3. 摸索出来的chrom调试前后台数据(Java&&Ajax)交互的方法分享一下咯!!!

    1:开始没想分享的,后来看到有大佬分享如何使用Chrom的工具进行调试,哈哈哈哼,我就借着他的博客写一下我摸索的如何进行前后台数据交互吧(注:反正是自己瞎 捣鼓出来的,也许适合我,and我脑补一下吧, ...

  4. 跟我一起读postgresql源码(九)——Executor(查询执行模块之——Scan节点(上))

    从前面介绍的可优化语句处理相关的背景知识.实现思想和执行流程,不难发现可优化语句执行的核心内容是对于各种计划节点的处理,由于使用了节点表示.递归调用.统一接口等设计,计划节点的功能相对独立.代码总体流 ...

  5. 数据结构-堆(应用篇)之堆排序法-C和C++的实现

    堆排序 关于堆的内容我们已经在上一节中了解了,本节中将给出一个堆的应用-堆排序. 关于堆的概念可以看上一节,入口:http://www.cnblogs.com/HongYi-Liang/p/78536 ...

  6. 代理内网上网-iptables

    代理内网上网-iptables 1.1 环境说明 主机A:(能上网) ip:内172.16.1.7/24 外10.0.0.7/24 系统CentOS 6.9 主机B:(不能上网) ip:内172.16 ...

  7. [整理]Linux Crontab命令总结

    一.crontab命令的基本介绍 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab" ...

  8. 原生js选项卡

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 在 .NET 中,扫描局域网服务的实现

    在最近负责的项目中,需要实现这样一个需求:在客户端程序中,扫描当前机器所在网段中的所有机器上是否有某服务启动,并把所有已经启动服务的机器列出来,供用户选择,连接哪个服务.注意:这里所说的服务事实上就是 ...

  10. SVM公式推导笔记

    参考资料: 对偶函数-http://blog.pluskid.org/?p=702 KTT和拉格朗日乘子-http://www.cnblogs.com/zhangchaoyang/articles/2 ...