regularexpression=/pattern/[switch]

这个switch就有三种值 g: 全局匹配 i: 忽略大小写 gi: 全局匹配 + 忽略大小写 JScript 语言参考

--------------------------------------------------------------------------------

  后向引用 正则表达式一个最重要的特性就是将匹配成功的模式的某部分进行存储供以后使用这一能力。请回想一下,对一个正则表达式模式或部分模式两边添加圆括号将导致这部分表达式存储到一个临时缓冲区中。可以使用非捕获元字符 '?:', '?=', or '?!' 来忽略对这部分正则表达式的保存。

  所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容存储。存储子匹配的缓冲区编号从 1 开始,连续编号直至最大 99 个子表达式。每个缓冲区都可以使用 '\n' 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。

  后向引用一个最简单,最有用的应用是提供了确定文字中连续出现两个相同单词的位置的能力。请看下面的句子: Is is the cost of of gasoline going up up? 根据所写内容,上面的句子明显存在单词多次重复的问题。如果能有一种方法无需查找每个单词的重复现象就能修改该句子就好了。下面的 JScript 正则表达式使用一个子表达式就可以实现这一功能。

/\b([a-z]+) \1\b/gi

等价的 VBScript 表达式为:

"\b([a-z]+) \1\b"

  在这个示例中,子表达式就是圆括号之间的每一项。所捕获的表达式包括一个或多个字母字符,即由'[a-z]+' 所指定的。该正则表达式的第二部分是对前面所捕获的子匹配的引用,也就是由附加表达式所匹配的第二次出现的单词。'\1'用来指定第一个子匹配。单词边界元字符确保只检测单独的单词。如果不这样,则诸如 "is issued" 或 "this is" 这样的短语都会被该表达式不正确地识别。

  在 JScript 表达式中,正则表达式后面的全局标志 ('g') 表示该表达式将用来在输入字符串中查找尽可能多的匹配。大小写敏感性由表达式结束处的大小写敏感性标记 ('i') 指定。多行标记指定可能出现在换行符的两端的潜在匹配。对 VBScript 而言,在表达式中不能设置各种标记,但必须使用 RegExp 对象的属性来显式设置。   

  使用上面所示的正则表达式,下面的 JScript 代码可以使用子匹配信息,在一个文字字符串中将连续出现两次的相同单词替换为一个相同的单词:

var ss = "Is is the cost of of gasoline going up up?.\n"; var re = /\b([a-z]+) \1\b/gim; //创建正则表达式样式.
var rv = ss.replace(re,"$1"); //用一个单词替代两个单词. 

最新文章

  1. MySQL学习笔记十七:复制特性
  2. 2016 Multi-University Training Contest 5
  3. URL和URI区别
  4. 一个简单的html5页面在线速成工具!(当然本文主要说下他的成果的结构)
  5. springmvc之interceptor(拦截器)
  6. 用c#开发微信 (10) JS-SDK 基本用法- 分享接口“发送到朋友”
  7. property和attribute的区别
  8. struts2拦截器interceptor的三种配置方法
  9. 使用node的http模块实现爬虫功能,并把爬到的数据存入mongondb
  10. Poj 2996 Help Me with the Game
  11. jquery的节点查询
  12. [原创]obj-c编程16:键值编码(KVC)
  13. HDU 1509 Windows Message Queue(队列)
  14. Windows进程间通信(下)
  15. 快速找到Office应用程序安装路径
  16. bzoj 2004: [Hnoi2010]Bus 公交线路
  17. ubuntu的安装与vim(部分)文件的配置
  18. 各CF-based tracker中output_sigma_factor取值
  19. svn 被锁住 冲突 Can't revert without reverting children
  20. 弹性势能,position,min用法,获取元素的宽

热门文章

  1. 使用sumlime text有感
  2. c++多线程参数的传递
  3. 使用scrapy写好爬虫进行工作的时候,遇到错误及解决方法
  4. YACC基本用法
  5. Three.js基础
  6. Linux01--文件管理,常用命令 权限管理
  7. getHibernateTemplate()和getSession()的区别
  8. 论山寨手机与Android 【15】结束语
  9. InstallShield 工程类型installscript,如何覆盖安装?
  10. Linux学习笔记3-VI 和 VIM的使用