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

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. jQuery源码解析资源便签

    最近开始解读jQuery源码,下面的链接都是搜过来的,当然妙味课堂 有相关的一系列视频,长达100多期,就像一只蜗牛慢慢爬, 至少品读三个框架,以后可以打打怪,自己造造轮子. 完全理解jQuery源代 ...

  2. mycat安装与配置

    1.安装jdk 测试jdk是否已经安装 [root@node002 ~]# java -version-bash: java: command not found 创建解压目录 [root@node0 ...

  3. Java框架之Spring MVC(二)

    一.Spring MVC 验证 JSR 303 是ajvaEE6 中的一项子规范 ,叫 Bean Validation 用于对javaBean中的字段进行校验. 官方的参考实现是: Hibernate ...

  4. Oracle 序列 CACHE 值必须小于 CYCLE 值的解决方法

    之前创建sequence时碰到一个问题, 当我使用了cache时总是提示CACHE 值必须小于 CYCLE 值,查了下文档,找到这么一个公式 文档的大概意思是cache的值必须要小于通过这个公式计算得 ...

  5. 转载自 BotVS 「 珍藏版 」如何搭建一个完整的交易框架

    [img]http://dn-filebox.qbox.me/8c218c119046b2a25df2d9c7b00c1e0fa6899bdd.png[/img]NO:01 交易策略 ≠ 交易系统. ...

  6. [转载自阿里丁奇]各版本MySQL并行复制的实现及优缺点

    MySQL并行复制已经是老生常谈,笔者从2010年开始就着手处理线上这个问题,刚开始两三年也乐此不疲分享,现在再提这个话题本来是难免"炒冷饭"嫌疑.    最近触发再谈这个话题,是 ...

  7. cyclictest 简介

    1. cyclictest 简介以及安装 1.1 cyclictest 简介 cyclictest 是什么? 看名字应该就能大致猜出来它是一种 test 程序,Cyclictest的维基主页这么介绍它 ...

  8. 你不知道的JSON.stringify和JSON.parse

    json是JavaScript 对象表示法(JavaScript Object Notation),是一种简单的数据格式,类似于XML,其格式为名称/值对,数据用逗号隔开,名称必须用双引号括起来.例如 ...

  9. visualMap组件横向展示

  10. Codeforces 754A Lesha and array splitting(简单贪心)

    A. Lesha and array splitting time limit per test:2 seconds memory limit per test:256 megabytes input ...