天气晴好,正当上午,悠闲的坐在窗边品着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
=================================================
分享到:
相关推荐
3. **易语言中的正则表达式替换实例** - 基本替换:如将所有数字替换为星号,可以使用模式`\d`和替换字符串`'*'`。 - 分组替换:如果需要保留某些部分,可以使用分组并仅替换其他部分。 - 全局替换:使用特定选项...
这个“vb正则表达式实例”很可能是为了帮助开发者测试和理解正则表达式的工作原理而设计的一个应用程序。下面将详细探讨正则表达式的基本概念、在VB.NET中的应用以及如何使用它们进行文本匹配。 1. 正则表达式基础 ...
### 正则表达式经典实例 #### 一、概述 正则表达式是计算机科学领域中一种用于描述字符串模式的强大工具。它广泛应用于文本搜索、数据验证、字符串替换等多种场景。《正则表达式经典实例》这本书深入浅出地介绍了...
正则表达式,简称为正则,是一种强大的文本处理工具,用于匹配、查找、替换、分析等操作。在编程和数据分析领域,正则表达式扮演着至关重要的角色,尤其是在处理和解析字符串时。《精通正则表达式》与《正则表达式...
《正则表达式经典实例》是由美国作家高瓦特斯(Gawande)和利维森(Levenson)合著的一本技术专著,主要针对正则表达式的使用和实践进行了深入探讨。这本书旨在帮助读者理解和掌握这个强大的文本处理工具,从而在...
这本书中的实例涵盖了多种常见问题,如验证输入格式、提取特定信息、替换文本等,是提升正则表达式技能的宝贵资源。 总之,《正则表达式经典实例 第2版》(英文版) 是一个全面的指南,对于任何需要处理字符串和文本...
- `Regex`类:这是处理正则表达式的核心类,提供了多种与正则相关的静态方法和实例方法。 - `Match`类:表示正则表达式的一个匹配结果。 - `MatchCollection`类:存储多个匹配结果的集合。 2. **正则表达式语法*...
正则表达式(Regular Expression),则是一种强大的文本处理工具,用于匹配、查找、替换和提取特定模式的字符串。在VB中结合使用正则表达式,可以增强对输入数据的验证和处理能力,确保程序的数据有效性。 本实例...
例如,开发者可能需要创建一个`RegExp`实例,设置正则表达式模式,然后调用`Execute`方法进行匹配操作。如果匹配成功,可以通过`Match`对象获取相关信息。 描述中提到的“pb中使用正则表达式组件,通过该组件可以在...
- 正则表达式是一种模式匹配工具,用于字符串搜索、替换和提取。Java中的`Pattern`和`Matcher`类用于处理正则表达式。 - `Pattern.compile(regex)`编译正则表达式为模式对象,`Matcher`对象通过`Pattern`对象的`...
### Oracle正则表达式详解(用法+实例) #### 一、正则表达式简介 正则表达式是一种用于匹配字符串中字符组合的工具。它由一个或多个字符及特殊的字符元组成,能够帮助我们执行复杂的字符串搜索和替换任务。在...
在使用封装的正则表达式模块时,记得引入相关的头文件并实例化对象,然后在适当的地方调用验证方法。 总之,通过Qt的正则表达式功能,我们可以实现对lineEdit输入的强大控制,提供更友好的用户交互体验。这个项目...