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

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. TS Eslint规则说明

    ,//禁止使用alert confirm prompt ,//禁止使用数组构造器 ,//禁止使用按位运算符 ,//禁止使用arguments.caller或arguments.callee ,//禁止 ...

  2. 在block内如何修改block外部变量

    默认情况下,在block中访问的外部变量是复制过去的,即:写操作不对原变量生效.但是你可以加上__block来让其写操作生效,示例代码如下: 1 2 3 4 5 6 __block int a = 0 ...

  3. 2、ABPZero系列教程之拼多多卖家工具 更改数据库为Mysql

    因为要部署项目到云服务器,不想在服务器上装SqlServer,所以需要把项目改为Mysql. 项目初始化 1.下载项目压缩包,前面文章已经说到,可以加群到群文件里下载.解压缩下载的项目源码,使用VS2 ...

  4. CSS选择器:伪类(图文详解)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 伪类(伪类选择器) 伪类:同一个标签,根据其不同的种状态,有不同的样式. ...

  5. 前端包管理工具 yarn

    yarn 是一个  与 npm 类似的 前端包管理工具 安装 windows  要去官网下载 (一定要去官网下载 .mis 文件进行安装)   用npm 或者 cnpm  也能安装 但是这种安装 有缺 ...

  6. div外观例子

    title: div外观例子 date: 2018-1-15 14:00:00 tags: 前端 div css categories: 前端框架 --- 标题 我的标题 内容 Font Awesom ...

  7. ReSharper 全教程

    Resharper系列 更多关于Resharper的介绍 参考我之前的文章: Resharper 详细教程 提升ReSharper和Visual Studio的性能 Visual Studio中使用R ...

  8. 【mp3】洗脑循环了!龙珠超 自在极意功 【究极の圣戦】串田アキラ 背景纯音乐

    自在极意功情况下发动自带bgm 曲名:究极の圣戦 首先是视频: http://dwz.cn/6Tj2Lq 然后是mp3:度盘下载>> 老外翻唱: 个人翻唱:全民k歌>>

  9. CSS基础知识(颜色、伪类、盒子模型)

    6.设置颜色单位 L    普通英文单词 {color : 属性值red;} 此方法简单,便捷.但设置的颜色在不同浏览器中,可能显示的颜色出现差异 * 三原色 - 红.绿.蓝 L   颜色的八进制方式 ...

  10. Fiddler抓取https证书问题

    正常的使用方法  Fiddler 抓包工具总结    大部分问题的解决方案  fiddler4在win7抓取https的配置整理 像我脸一样黑的解决方案  Fiddler https 证书问题     ...