天气晴好,正当上午,悠闲的坐在窗边品着M记的Coffee,想起了刚才的事...
又一次用到了正则表达式,并且又一次救我于批量替换字符的危难之中。如果没有它那这次的问题估计花费的时间就多了,写好了正则表达式和替换的表达式,按一下“Replace”按钮,不到30秒解救我于烦躁的体力劳动中,感觉就两个字“舒服”。
闲话也说得差不多了,看看我的实际问题吧: 修改jsp路径问题,下面的语句是源自SpringMVC的Controller的返回,由于之前许多小盆友在Coding的时候把jsp页面的路径写死在了类中,如:
return new ModelAndView("reportBatchPrint",map);
现在需要在这个路径前添加一层report文件夹,修改后如:
return new ModelAndView("/report/reportBatchPrint",map);
正常情况下可以以
new ModelAndView\(\"(.+)\",
来搜索替换,但问题是目前有些已经添加了report路径,所以就需要修改为
new ModelAndView\(\"([^\/])\",
即不包含“/”字符的任意字符,但又发现还有
return new ModelAndView("redirect:report.do",map);
这种重定向的语句存在所以修改为
new ModelAndView\(\"([^:\/])\",
即不包含“/”和“:”字符的分组,搜索了一下发现一个都没匹配到,忽然想起需要添加匹配次数,于是修改为
new ModelAndView\(\"([^:\/]+)\",
发现搜索范围过大了把其他行的代码都加进来了,于是想到正则表达式的贪婪与懒惰问题,查阅资料后发现须以“+?”来限定,即“重复1次或更多次,但尽可能少重复”,会心的一笑,修改为
new ModelAndView\(\"([^:\/]+?)\",
搜索到了想要的东西,然后用
new ModelAndView\(\"/report/\1\",
来替换问题迎刃而解,其中\1代表()内组一的内容。
下面提供一些相关概念、资源及链接地址:
正则表达式(英文:Regular Expression),在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。
表5.懒惰限定符
代码/语法 |
说明 |
*? |
重复任意次,但尽可能少重复
|
+? |
重复1次或更多次,但尽可能少重复 |
?? |
重复0次或1次,但尽可能少重复 |
{n,m}? |
重复n到m次,但尽可能少重复
|
{n,}? |
重复n次以上,但尽可能少重复
|
|
正则表达式30分钟入门教程
http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm#regexoptions
=================================================
images/loading.gif
((images/)((?!report/)[^"')>]+))*
\2report/\3
=================================================
scripts/ext-2.0/resources/css/report/common.css
scripts/ext-2.0/source/locale/ext-lang-zh_CN.js
((scripts/)((?!report/)[^"')>]+))*
\2report/\3
=================================================
css/credit/listcss/dgcStyle.css
scripts/report/ext-2.0/resources/css/ext-all.css (css/ext-all.css)
(("css/)((?!report/)[^"')>]+))*
\2report/\3
=================================================
"styles/css.css
(("styles/)((?!report/)[^"')>]+))*
\2report/\3
=================================================
分享到:
相关推荐
《精通正则表达式》&《正则表达式经典实例》合辑。认真看好这两本书正则表达式轻车熟路,过来人箴言。
简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象...
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。...在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
正则表达式(英语:Regular Expression、regex或regexp,缩写...在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。
JAVA正则表达式实例教程.pdf 1、正则表达式的知识要点 1、正则表达式是什么? 正则表达式是一种可以用于模式匹配和替换的强有力的工具。 2、正则表达式的优点? 更少的代码,更高的效率。 3、正则表达式如何使用? ...
中文名: 正则表达式经典实例 原名: Regular Expression Cookbook 作者: (美)高瓦特斯(Goyvaerts,J.) (美)利维森(Levithan,S.)译者: 郭耀 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社书号: ...
正则表达式善于处理文本,对匹配、搜索和替换等操作都有意想不到的作用。正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率。 正则表达式应用于程序设计语言中,...
易语言正则表达式类匹配中文源码,正则表达式类匹配中文,创建,取正则文本,替换,取匹配数量,取匹配文本,取子匹配文本,取子匹配数量
Qt正则表达式例程,包含字符串搜索、字符串替换等。配合博文http://blog.csdn.net/lankin2013/article/details/41989961 Qt的正则表示类是QRegExp,在很多情况下都可以用到,比如字符串验证、字符串搜索、搜索并替换...
001_正则表达式初体验.wmv 002_什么是正则表达式.wmv 003_实例(统计出现次数) .wmv 004_实例(文本替换).wmv 005_正则表达式之元字符.wmv 006_正则表达式元字符提取数据.wmv ...024_正则表达式实例应用
主要介绍了MySQL中使用replace、regexp进行正则表达式替换的用法,结合具体实例形式分析了replace、regexp正则替换的使用技巧与相关注意事项,需要的朋友可以参考下
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 Python 自1.5版本起增加了re 模块,它提供 Perl ...使用正则表达式替换字典数据 ${memberID} 对应的正则表达式 ‘\$\{.*\}’ 解
用于多字节字符集项目转换为UNICODE字符集代码转换时,提高代码修改效率,将""替换为_T(""),以及_T("")替换为"
经常用电脑做文字处理的朋友应该遇到过很多麻烦事,其中最让人头痛的莫过于搜索和替换了。如果只是简单的“ A B C ”换成“ A A C” 当然简单,但如果是将所有“ A...其实只要学会“正则表达式”,这些问题均迎刃而解。
主要介绍了JavaScript正则表达式替换字符串中图片地址(img src)的方法,结合实例形式分析了JS正则替换的常用技巧与注意事项,需要的朋友可以参考下
如果您想验证格式为2010/04/24,2010.04.24的日期,请参考压缩包里的“正则应用之——日期正则表达式.doc”文件。您可以根据自己的需要修改。 这个实例是在vs2008下进行的(net 3.5),如果您使用的是net 2.0,请替换...
在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。 许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念...
免费好用的正则达式匹配工具,可以打开指定的网页(大部分测试通过),可以插入默认的正则表达式,可以执行替换操作等。