- 浏览: 427860 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
lkun__blog:
网页打不开啊
博客搬家到http://cuiz.me -
bglmmz:
楼主怎么解决的?我用python调用ice服务,也出现此问题, ...
syscall exception: 存储空间不足,无法处理此命令 -
luliangy:
哥,你什么配置,我10W个请求10秒左右就搞定了,毫无压力,R ...
Nginx和Apache简单的并发压力测试 -
liuxuejin:
这!看的我都···········。我看代码而已。怎么
EPOLL及消息队列实现SMTP 之 青楼的故事 -
zires:
night_stalker 写道unicorn 也很好维护啊, ...
Unicorn和Passenger性能测试对比
推荐RT,
如果哪个哥们发现了比EditPlus对正则支持的更NB的编辑器(标准正则表达式),请通知我,谢谢啊。支持非标准的正则就不要提了,如UE等。目前的EditPlus支持的正则表达式也不是很完全,比如\s空格就不支持。
为啥要文本中等大小?
太大了正则效率不高,正则表达式的执行是很消耗CPU时间的。
太小了手工改改就OK了,要是你正则不熟练,还要想半天。
文本太大的话我会用Ruby或者JS这种方便执行的脚本语言来做。
我觉得我对正则表达式的使用范围越来越广了,
而且windows下配合Editplus进行文本处理真方便。
本来刚才要写一大段的C代码,不断的重复,超级麻烦,用正则表达式把我要的URL扣出来,
然后直接嵌入进代码片段后,立刻搞定,剩下无数工作量啊。
原始文本:
看一下啊,所有带Cache的行我都不要,这么做:
Ctrl+H,
正则表达式那里填入:
然后勾选正则表达式,替换,去掉换行符之后是这样:
然后我要把里面所有http://的URL填入web_url("\2","URL=\1",LAST)之后,
\2是名字,我用每个请求最后的处理方法名代替,它位于url中的最后一个/之后,?之前。
\1是URL,带参数,http://开始到该行的结尾。
这么做:
正则表达式:
被替换的地方:
替换后的文本:
用正则处理不大不小的文本是不是很爽?
附件是EditPlus的正则表达式帮助截图,想看就点开,最好自己下载一个玩玩。
我弄错了 …… ?P<name> 是 Python 的 ……
应该是Python的。。。
不过其它的我不知道。。。
我弄错了 …… ?P<name> 是 Python 的 ……
So how do you get from where you are to using Emacs so much you spend your spare time hacking on various Emacs libraries for fun? Mostly by making a point of using Emacs for all of your editing needs, and allowing Emacs to slowly take over your other computings tasks as well.
--- 十年学会emacs
嘿嘿 就是这样的
emacs 的学习过程漫长而有趣
perl 的命名分组用 ?P<name>,而 ruby (1.9)用 ?<name>
perl 也用 ?<name>..
?p<name> 是python中的用法
perl 的非捕获分组(或者说 atomic group)是用 ?>,而 ruby 用 ?:
perl 也提供用 ?:
...
emacs党表示editplus太弱了。。。
Linux下能用正则表达式的地方就太多了,
记得以前坛子里一个哥们谁了,说过,“没有cut+sed搞不定的log”。
night_stalker你啥都玩过啊:P
你发帖,我肯定都看一眼的。
如果哪个哥们发现了比EditPlus对正则支持的更NB的编辑器(标准正则表达式),请通知我,谢谢啊。支持非标准的正则就不要提了,如UE等。目前的EditPlus支持的正则表达式也不是很完全,比如\s空格就不支持。
为啥要文本中等大小?
太大了正则效率不高,正则表达式的执行是很消耗CPU时间的。
太小了手工改改就OK了,要是你正则不熟练,还要想半天。
文本太大的话我会用Ruby或者JS这种方便执行的脚本语言来做。
我觉得我对正则表达式的使用范围越来越广了,
而且windows下配合Editplus进行文本处理真方便。
本来刚才要写一大段的C代码,不断的重复,超级麻烦,用正则表达式把我要的URL扣出来,
然后直接嵌入进代码片段后,立刻搞定,剩下无数工作量啊。
原始文本:
00:00:00.002 0.001 0 GET (Cache) application/javascript http://w.alisoft.com/static/jquery-1.3.2.min.js 00:00:00.037 0.001 0 GET (Cache) application/javascript http://w.alisoft.com/space/js/util.js 00:00:00.041 0.001 0 GET (Cache) text/css http://w.alisoft.com/static/reset.css 00:00:00.043 0.001 0 GET (Cache) text/css http://w.alisoft.com/static/global_back.css 00:00:00.045 0.001 0 GET (Cache) text/css http://w.alisoft.com/static/index/index.css 00:00:00.046 0.001 0 GET (Cache) text/css http://w.alisoft.com/static/module/module.css 00:00:00.048 0.001 0 GET (Cache) application/javascript http://w.alisoft.com/static/module/module.js 00:00:00.084 0.001 0 GET (Cache) application/javascript http://w.alisoft.com/space/js/CookieUtil.js 00:00:00.087 0.001 0 GET (Cache) application/javascript http://w.alisoft.com/space/js/feed.js 00:00:00.000 0.091 0 GET (Cache) text/html;charset=UTF-8 http://w.alisoft.com/space/home/homePage.do 00:00:00.091 0.001 0 GET (Cache) application/x-javascript http://img.im.alisoft.com/webim/js/website.js 00:00:00.099 0.001 0 GET (Cache) application/javascript http://w.alisoft.com/static/index/index.js 00:00:00.103 0.001 0 GET (Cache) application/javascript http://w.alisoft.com/static/base.js 00:00:00.110 0.001 0 GET (Cache) text/plain;charset=utf-8 http://w.alisoft.com/space/layout/layout.do 00:00:00.150 0.002 0 GET (Cache) text/plain;charset=utf-8 http://w.alisoft.com/space/friend/loadGroupInfo.do 00:00:00.209 0.025 3458 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/mission/mission!cmission.do?jsoncallback=jsonp1247116589623&_=1247116589794 00:00:00.246 0.001 0 GET (Cache) application/x-javascript http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js 00:00:00.207 0.045 13751 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/mood/homeMoodInit.do?jsoncallback=jsonp1247116589622&_=1247116589794 00:00:00.252 0.002 0 GET (Cache) application/x-javascript http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js 00:00:00.237 0.021 2207 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/poke/poke!listPokeInfoForFriend.do?jsoncallback=jsonp1247116589624&_=1247116589825 00:00:00.239 0.031 815 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/poke/poke!listPokeInfoForNonFriend.do?jsoncallback=jsonp1247116589625&_=1247116589825 00:00:00.240 0.043 2207 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/poke/poke!listPokeInfoForFriend.do?jsoncallback=jsonp1247116589626&_=1247116589825 00:00:00.321 0.031 10410 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/face/face.do?jsoncallback=jsonp1247116589627&_=1247116589903 00:00:00.216 0.204 510 GET 200 text/html;charset=UTF-8 http://w.alisoft.com/space/home/homePage!homePageMessages.do?token=1247116589794 00:00:00.287 0.422 19543 GET 200 application/x-javascript http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js?_=1247116589872 00:00:00.233 0.338 1229 POST 200 text/html;charset=UTF-8 http://w.alisoft.com/space/feed/portal!feedList.do?token=1247116589809 00:00:00.224 0.618 3178 GET 200 text/html;charset=UTF-8 http://w.alisoft.com/space/friend/homePageFriendWidget.do?token=1247116589794 00:00:00.871 0.002 492 GET 404 text/html; charset=iso-8859-1 http://amos.im.alisoft.com/mullidstatus.aw?beginnum=1&uids=
看一下啊,所有带Cache的行我都不要,这么做:
Ctrl+H,
正则表达式那里填入:
.*Cache.*
然后勾选正则表达式,替换,去掉换行符之后是这样:
00:00:00.209 0.025 3458 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/mission/mission!cmission.do?jsoncallback=jsonp1247116589623&_=1247116589794 00:00:00.207 0.045 13751 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/mood/homeMoodInit.do?jsoncallback=jsonp1247116589622&_=1247116589794 00:00:00.237 0.021 2207 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/poke/poke!listPokeInfoForFriend.do?jsoncallback=jsonp1247116589624&_=1247116589825 00:00:00.239 0.031 815 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/poke/poke!listPokeInfoForNonFriend.do?jsoncallback=jsonp1247116589625&_=1247116589825 00:00:00.240 0.043 2207 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/poke/poke!listPokeInfoForFriend.do?jsoncallback=jsonp1247116589626&_=1247116589825 00:00:00.321 0.031 10410 GET 200 text/x-json;charset=UTF-8 http://apps.w.alisoft.com/apps/face/face.do?jsoncallback=jsonp1247116589627&_=1247116589903 00:00:00.216 0.204 510 GET 200 text/html;charset=UTF-8 http://w.alisoft.com/space/home/homePage!homePageMessages.do?token=1247116589794 00:00:00.287 0.422 19543 GET 200 application/x-javascript http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js?_=1247116589872 00:00:00.233 0.338 1229 POST 200 text/html;charset=UTF-8 http://w.alisoft.com/space/feed/portal!feedList.do?token=1247116589809 00:00:00.224 0.618 3178 GET 200 text/html;charset=UTF-8 http://w.alisoft.com/space/friend/homePageFriendWidget.do?token=1247116589794 00:00:00.871 0.002 492 GET 404 text/html; charset=iso-8859-1 http://amos.im.alisoft.com/mullidstatus.aw?beginnum=1&uids=
然后我要把里面所有http://的URL填入web_url("\2","URL=\1",LAST)之后,
\2是名字,我用每个请求最后的处理方法名代替,它位于url中的最后一个/之后,?之前。
\1是URL,带参数,http://开始到该行的结尾。
这么做:
正则表达式:
^.*(http:.*\/(.*)\?.*)$
被替换的地方:
web_url("\2","URL=\1",LAST);
替换后的文本:
web_url("mission!cmission.do","URL=http://apps.w.alisoft.com/apps/mission/mission!cmission.do?jsoncallback=jsonp1247116589623&_=1247116589794",LAST); web_url("homeMoodInit.do","URL=http://apps.w.alisoft.com/apps/mood/homeMoodInit.do?jsoncallback=jsonp1247116589622&_=1247116589794",LAST); web_url("poke!listPokeInfoForFriend.do","URL=http://apps.w.alisoft.com/apps/poke/poke!listPokeInfoForFriend.do?jsoncallback=jsonp1247116589624&_=1247116589825",LAST); web_url("poke!listPokeInfoForNonFriend.do","URL=http://apps.w.alisoft.com/apps/poke/poke!listPokeInfoForNonFriend.do?jsoncallback=jsonp1247116589625&_=1247116589825",LAST); web_url("poke!listPokeInfoForFriend.do","URL=http://apps.w.alisoft.com/apps/poke/poke!listPokeInfoForFriend.do?jsoncallback=jsonp1247116589626&_=1247116589825",LAST); web_url("face.do","URL=http://apps.w.alisoft.com/apps/face/face.do?jsoncallback=jsonp1247116589627&_=1247116589903",LAST); web_url("homePage!homePageMessages.do","URL=http://w.alisoft.com/space/home/homePage!homePageMessages.do?token=1247116589794",LAST); web_url("firebug-lite-compressed.js","URL=http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js?_=1247116589872",LAST); web_url("portal!feedList.do","URL=http://w.alisoft.com/space/feed/portal!feedList.do?token=1247116589809",LAST); web_url("homePageFriendWidget.do","URL=http://w.alisoft.com/space/friend/homePageFriendWidget.do?token=1247116589794",LAST); web_url("mullidstatus.aw","URL=http://amos.im.alisoft.com/mullidstatus.aw?beginnum=1&uids=",LAST);
用正则处理不大不小的文本是不是很爽?
附件是EditPlus的正则表达式帮助截图,想看就点开,最好自己下载一个玩玩。
评论
20 楼
yilv99
2009-07-15
才发现哦。。
19 楼
moyue
2009-07-15
正则一直没开始学,但一直说要学
ps;UE支持列编辑
ps;UE支持列编辑
18 楼
night_stalker
2009-07-15
这三点和列编辑好像大部分编辑器都支持 ……
17 楼
CharlesCui
2009-07-15
EditPlus最让我爽的三点:
1、可以集成到鼠标右键,这样打开文件超级方便。
2、写网页的时候,Ctrl+B可以直接看到网页的结果,不用另外找个浏览器打开。
3、支持标准的正则表达式。
这三点都很重要:)
最大的遗憾:
1、不支持列编辑
1、可以集成到鼠标右键,这样打开文件超级方便。
2、写网页的时候,Ctrl+B可以直接看到网页的结果,不用另外找个浏览器打开。
3、支持标准的正则表达式。
这三点都很重要:)
最大的遗憾:
1、不支持列编辑
16 楼
keyboard2000
2009-07-15
用notepad++
15 楼
whaosoft
2009-07-14
不就正则吗 2年了 都是我的弱项!~
14 楼
mikeandmore
2009-07-14
night_stalker 写道
icefishc 写道
perl 也用 ?<name>..
我弄错了 …… ?P<name> 是 Python 的 ……
应该是Python的。。。
不过其它的我不知道。。。
13 楼
night_stalker
2009-07-14
icefishc 写道
perl 也用 ?<name>..
我弄错了 …… ?P<name> 是 Python 的 ……
12 楼
icefishc
2009-07-14
night_stalker 写道
引用
So how do you get from where you are to using Emacs so much you spend your spare time hacking on various Emacs libraries for fun? Mostly by making a point of using Emacs for all of your editing needs, and allowing Emacs to slowly take over your other computings tasks as well.
--- 十年学会emacs
嘿嘿 就是这样的
emacs 的学习过程漫长而有趣
11 楼
icefishc
2009-07-14
night_stalker 写道
perl 的命名分组用 ?P<name>,而 ruby (1.9)用 ?<name>
perl 也用 ?<name>..
?p<name> 是python中的用法
night_stalker 写道
perl 的非捕获分组(或者说 atomic group)是用 ?>,而 ruby 用 ?:
perl 也提供用 ?:
...
10 楼
night_stalker
2009-07-14
9 楼
icefishc
2009-07-14
啥叫标准正则表达式。。。。。
emacs党对editplus用户表示不理解
emacs党对editplus用户表示不理解
8 楼
mikeandmore
2009-07-14
andyyehoo 写道
editplus一直是最爱编辑器,其实其它编辑器也有比它强的,lz说的正则替换也未必没有,不过功能相当而尺寸比它小的,还真没见过,功能简洁而全面,实在是居家旅行,必备良药。
最大的愿望就是,把注册去掉,开源吧…………
最大的愿望就是,把注册去掉,开源吧…………
emacs党表示editplus太弱了。。。
7 楼
andyyehoo
2009-07-14
editplus一直是最爱编辑器,其实其它编辑器也有比它强的,lz说的正则替换也未必没有,不过功能相当而尺寸比它小的,还真没见过,功能简洁而全面,实在是居家旅行,必备良药。
最大的愿望就是,把注册去掉,开源吧…………
最大的愿望就是,把注册去掉,开源吧…………
6 楼
CharlesCui
2009-07-09
QuakeWang 写道
处理这种文件还可以用grep和sed配合使用:
cat test.log | grep '200' | sed -r 's/^.*(http:.*\/(.*)\?.*)$/web_url("\2","URL=\1",LAST);/'
Linux下能用正则表达式的地方就太多了,
记得以前坛子里一个哥们谁了,说过,“没有cut+sed搞不定的log”。
5 楼
QuakeWang
2009-07-09
处理这种文件还可以用grep和sed配合使用:
cat test.log | grep '200' | sed -r 's/^.*(http:.*\/(.*)\?.*)$/web_url("\2","URL=\1",LAST);/'
4 楼
CharlesCui
2009-07-09
night_stalker 写道
还是有区别的 …… 譬如
perl 和 php 的正则有递归(分组内以 (?R) 代表自己) 和 callback
perl 的非捕获分组(或者说 atomic group)是用 ?>,而 ruby 用 ?:
perl 的命名分组用 ?P<name>,而 ruby (1.9)用 ?<name>
perl 和 php 的正则有递归(分组内以 (?R) 代表自己) 和 callback
perl 的非捕获分组(或者说 atomic group)是用 ?>,而 ruby 用 ?:
perl 的命名分组用 ?P<name>,而 ruby (1.9)用 ?<name>
night_stalker你啥都玩过啊:P
你发帖,我肯定都看一眼的。
3 楼
night_stalker
2009-07-09
还是有区别的 …… 譬如
perl 和 php 的正则有递归(分组内以 (?R) 代表自己) 和 callback
perl 的非捕获分组(或者说 atomic group)是用 ?>,而 ruby 用 ?:
perl 的命名分组用 ?P<name>,而 ruby (1.9)用 ?<name>
perl 和 php 的正则有递归(分组内以 (?R) 代表自己) 和 callback
perl 的非捕获分组(或者说 atomic group)是用 ?>,而 ruby 用 ?:
perl 的命名分组用 ?P<name>,而 ruby (1.9)用 ?<name>
2 楼
CharlesCui
2009-07-09
嗯,ruby就是用了perl的正则。
java的正则好像又不同于ruby和perl。
java的正则好像又不同于ruby和perl。
1 楼
night_stalker
2009-07-09
其实,vim 的 perl binding 的正则最正统 ……
发表评论
-
博客搬家到http://cuiz.me
2011-05-31 11:13 1236我搬家了,新博客地址是: http://cuiz.me ... -
一种新的测试理念
2010-12-16 15:59 1177传染性测试-新的测试理念 性能测试可以 ... -
macport编译并管理debug版本代码
2010-08-19 17:40 1484sudo vim /opt/local/share ... -
【转】计算机编程的世界
2010-07-22 10:29 933xxxxxxxxxxxxxxxxxxxxxxxxxxx -
[测试]那些所谓的自动化啊
2010-01-21 12:02 1063测试是软件制造过程中 ... -
一篇文章
2009-08-11 17:19 811《模式识别与人工智能》2009年第三期------一种基于文本 ... -
个人数据库
2009-02-28 20:30 865个人数据库->采集->汇总->家庭数据中心( ... -
驾驶员理论考试76分
2008-11-27 13:01 957今天, 我, 驾驶员理论考试76分。 MD,不是说不用看也能 ... -
学习的方法
2008-11-21 15:37 825每种协议都可能会有各种各样的实现方法,不同的厂家来支持。 如 ... -
Editplus怎么统计单词数?
2008-08-19 17:18 10282如果你喜欢用Editplus, 那么你肯定了解它强劲的正则表达 ...
相关推荐
Editplus作为一款知名的代码编辑器,它具备了丰富的正则表达式支持,使得在处理文本格式转换时变得轻松高效。本文将深入探讨如何利用Editplus的正则表达式功能进行文本替换,以提升我们的工作效率。 首先,理解正则...
以上这些示例涵盖了常见的字符串验证场景,在使用EditPlus时可以根据具体需求灵活运用这些正则表达式,提高文本处理的效率和准确性。希望本文能帮助读者更好地理解和掌握正则表达式的使用技巧。
文本整理仅仅是用记事本... 您可能感兴趣的文章:EditPlus 正则表达式 实战(3)EditPlus中的正则表达式 实战(2)EditPlus中的正则表达式 实战(1)EditPlus中的正则表达式实战(5)EditPlus中的正则表达式实战(6)php和editplus
正则表达式是一种强大的文本处理工具,它通过一系列普通的字符(如 a 到 z)和特殊的字符(称为元字符)来定义一个搜索模式。这种模式被用来查找符合特定规则的字符串。正则表达式在编程语言、数据库查询、文本编辑...
例如,著名的`EditPlus`编辑器,以及大型的开发工具如`Microsoft Word`、`Visual Studio`等,都提供了使用正则表达式处理文本内容的功能。 #### 六、总结 正则表达式作为一种强大的文本处理工具,不仅能够帮助...
### EditPlus正则表达式应用详解 #### 一、正则表达式基础知识 **1.1 基本符号** ...通过学习这些基础概念和实践操作,可以帮助用户更加熟练地掌握EditPlus中的正则表达式功能,从而提高文本处理的效率。
在文本编辑软件EditPlus中,用户可以通过查找和替换功能使用正则表达式。例如,使用正则表达式删除文本中的空行可以通过查找"^\s*\r",其中^\s*匹配行开始的任意空白字符,\r代表行结束符。替换操作可以使用分组功能...
在本篇【EditPlus中的正则表达式 实战(4)】中,我们将继续深入探讨EditPlus这款文本编辑器中正则表达式的实际应用。正则表达式是文本处理和搜索替换的重要工具,尤其在编程、数据分析和文本挖掘等领域有着广泛的应用...
正则表达式是对字符串操作...由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容
EditPlus中的正则表达式 实战(1) EditPlus中的正则表达式 实战(2) EditPlus 正则表达式 实战(3) EditPlus中的正则表达式 实战(4) EditPlus中的正则表达式实战(5) EditPlus中的正则表达式实战(6) entity.JIANCHARQ=...
EditPlus是一个流行的文本编辑器,它支持用户利用正则表达式来处理文本数据。正则表达式(Regular Expression),是一种文本模式,包括普通字符(例如,字母或数字)和特殊字符(称为“元字符”),它们组合在一起,...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串模式。它在IT行业中被广泛应用,尤其是在文本处理、数据验证、编程语言(如JavaScript、Python、Java等)以及各种编辑器和工具中。掌握正则...