Monthly Archives: January 2010

提取 URL 的正则表达式

有个朋友问我一个在复杂文本中提取 URL 的正则表达式,在网上搜索了一下,鼓捣了好久,综合了多方资源,写出这么一个正则表达式:

加上点注释,我们来分析下:

于是能看懂了么?

测试了些正常的 URL,都很正确。

  • http://orzfly.com/
  • http://orzfly:8080/orztech.php?tel=123456
  • https://orzfly.com/
  • http://www.williamlong.info/script/common.js
  • relatedlinks.googlelabs.com/client/client.js?url=shcom&referrer=&relatedlinks_id=10065_599317151813484&title=
  • ……

测试了些不正确的 URL:

  • www.1a.exe:没有匹配,正确。
  • www.1@22.ci:没有匹配,正确。
  • 123%ww.com:没有匹配,正确。
  • www.煞笔.com:没有匹配,不正确。应该能匹配,但是由于支持国际域名难度较大,抛弃。
  • www.a/b.cc:没有匹配,正确。
  • g.cn/a/b.exe:没有匹配,正确。
  • www.g.cnmmmg.cnlllhttp:123.123.123.123:80hhhwok.cshdn.comsdfsdf:能完整匹配,但是这个肯定不正确。求高人指点。

参考资料:

Google 中国,一路走好

听说了最近沸沸扬扬的谷歌要逃出中国市场的新闻,我震惊了。很想用最恶毒的语言去骂一个中国特色的东西,可是想了想,还是算了,谁让我×××出生在中国。

从刚接触互联网的时候,爸爸就教导我:“百度只是一根葱,要学会用 Google。”于是我就一直都用 Google 了。

发件人:Gmail 小组 <gmail-noreply#google.com>
发送至:一尘陆 <luyichen1995#gmail.com>
日期:2005年9月10日 上午8:48
主题:Gmail 是出类拔萃的。您应当了解以下信息。

我的第一个 GMail 帐户,是 2005 年注册的,通过 bytetest.com 提供的邀请。自从用了这个邮箱,我就抛弃了以前注册的 DoNews.comYahoo.com 的邮箱(那两个邮箱都忒长)。很惊讶我现在还能登入进去,而那个邮箱已经很多年没使用了。最后一次大约还是 2007 年登录的。那个邮箱充满了我刚深入接触互联网的回忆。充满着当年因为无知无聊而订阅的 Google 快讯

from: service@tencent.com
to: LuYiChenWork#gmail.com
date: Tue, Mar 14, 2006 at 3:57 PM
subject: 密码保护的注册资料(请不要回复)

因为“垃圾邮件”(其实都是我自己闲着无聊订阅的)太多,而转向使用另外一个 GMail 邮箱。似乎是 2006 年注册的,最古老的那封欢迎邮件已经找不到,只找到一封无聊的疼熏发给我的密保资料。你也能从下面的信息中看到,我那时开始使用英文版的 GMail 了。这个邮箱参加过 KZTechs.com 的 Beta Team,也因此认识了 Smallfrogs。

from: Gmail 小组 <mail-noreply#google.com>
sender-time: Sent at 11:05 AM (GMT-07:00). Current time there: 4:30 AM.
to: 陆一尘 <wz.bluesnow#gmail.com>
date: Sun, Oct 28, 2007 at 11:05 AM
subject: Gmail 是出类拔萃的。这里有您不可不知的信息。

因为某次无聊,又决定更换邮箱,也是我一直用到今天的邮箱,我第一个充分利用的邮箱。WZ 是取赢政之意,是一个曾经很有名的论坛,现在似乎也很有名,但是也不想去了。也正是从这次换邮箱之后,我才充分深入地了解了互联网。我终于知道在国内有堵墙。起初用这个 GMail,我只是在想如何通过订阅大量的东西撑满它,还特意设置了一个标签“垃圾”,把所有订阅的内容全部放进去。后来发现这样很无聊,于是就将所有订阅的东西 Report Spam 然后删除了(似乎也很无耻)。后来用这个 GMail 了解了 Google Reader,Blogspot,Google Sites,Google Docs,Picasa,Google Calendar,Google Apps……以至于我依赖上了 Google。

from: Yichen Lu <admin#tt518.co.cc>
to: admin#tt518.co.cc
date: Sat, Oct 11, 2008 at 11:07 AM
subject: TEST

这是我第一个自己域的 Google Apps 邮箱。当时还是用的 Co.cc 免费域名,后来随着 Co.cc 域名开始被墙,还有不再一直免费就抛弃了。再次感到意外,竟然还能登陆,而域名已经有半年多没解析了。

from: Gmail Team <mail-noreply#google.com>
to: Yichen Lu <yichen.lu#orztech.com>
date: Sat, Dec 5, 2009 at 10:28 PM
subject: Get started with Gmail

from: Gmail Team <mail-noreply#google.com>
to: Yichen Lu <i#orzfly.com>
date: Wed, Dec 30, 2009 at 8:51 PM
subject: Get started with Gmail

这两个便是我现在对外公开并且正式使用的并且还有许多其他用户的两个 Google Apps。这两个邮箱都会将新邮件推动到我的 139 邮箱,并且能收到别人发到 139 邮箱的邮件。

本来想回忆其他 Google 服务的,但是可能太敏感了,算了。谷歌中国经历了太多风吹雨打,它决定走也不是我说了算的。所以,一路走好。

谨以此文纪念陪伴我多年的 Google。

我和侦探不解之缘

记得我还上幼儿园时,曾经特别喜欢和奶奶一起坐在电视机前看 CCAV 的今日说法,听主持人将警方破获一个又一个神奇的案件。

到了小学四、五年级,班级里开始流行叫冒险小虎队的系列书籍。我一开始并不以为这堆书很好看,但是后来在某同学家里看到一本,看到他在聚精会神地看,于是抢来,仔细一看,发现着实有趣。后来便迷上了这套书,于是跑遍大小书城买此书,买到了几乎所有的 30 册(包括几本从旧书摊淘来的)。无数个夜晚都是这堆书陪着我度过睡前的时光。现在想起来,还有好多剧情能想起来,碧吉、路克还有帕特里克那神秘的位于金虎饭店地下室的秘密据点还是难忘。

六年级,一个偶然的机会让我碰到了福尔摩斯探案集。居住在贝克街 221B 的福尔摩斯和他的助手华生医生游刃在一个又一个地点收集着一个又一个线索,最终推理出事情的真相。在原作者柯南·道尔(Conan Doyle)死后,又有许多别的作家写了所谓的福尔摩斯的续集,我看了,可是总感觉没有原作传神。

——分割线——

初一的暑假,老爸闲着发慌下载电影看,结果下载了几集名侦探柯南(491 话红与黑的碰撞 开始~482话红与黑的碰撞 血缘以及剧场版第 11 弹名侦探柯南 绀碧之棺(名探侦コナン 绀碧の棺))。之后便迷上了这部动画。曾经我是厌倦日本动画的,后来自从名侦探柯南开始,便再也不讨厌了。

虽然所谓的画面并没有那么精美,喇叭中传来的声音也是我所不能听懂的日语(虽然还能听懂人名和一些简单的对白,比如こんにちは(kon’nichiwa,你好),或者是さようなら(sayōnara,再见)。还有日文数字,说的很慢的话我也能听懂。),但是我却常常忘记不了工藤新一(Kudōu Shinichi)(也就是江户川柯南(Edogawa Conan))那些经典而又所谓“臭屁”的名言,也忘不了那些交给我的技能:

  • 真相永远只有一个!
  • 凶手就是你!
  • 小兰,没有事了,振作一点!
  • 我是江户川柯南,是个侦探
  • 不要逃避,灰原,不要逃避自己的命运。
  • ……

吼一句,表明一下我自己的 CP 观点:柯哀王道,新兰没戏。

在 EmEditor 中通过大纲视图列出 INI 文件中的 Section

这个标题可能有点绕,其实很简单。我只是想在 EmEditor 中编辑几个 INI 文件,然后前后不断翻来翻去太麻烦,看到窗口右边的大纲是空的,忽然想起可以用这个来实现。折腾了一下,写出了一个正则表达式。第一次用这种正则,看了半天帮助文件折腾出来。

打开大纲插件的设置,然后选中 INI 配置,按照下面的方法设置:

  • 类型:自定义(指定开始为水平 1/结束为水平 2)
  • 自定义栏最大水平:6
  • 水平 1:(?=[)^(.|n)+$(?<![)
  • 水平 1 正则表达式:勾选上
  • 水平 2:(空白)
  • 水平 2 正则表达式:勾选上

我表述的够清楚了,还看不懂看下图。

之后确定,再打开一个 INI 文件,就能在大纲视图中看到各个 Section 的标题了(下图)。当然也可以折叠了,只是如果 Section 之间有空行的话折叠会失效,而且每个 Section 开始前必须有一个空行,否则便会层叠了……可以先替换 nnn 清理掉所有空行之后再替换 ^[n 一次来规范格式(两次替换都要启用正则表达式,这样规范一下一般来说不会影响 INI 文件的使用吧……)

若你有更好的方法,请在这里留言,谢谢。另外请不要向我索取那个 VPN.pbk 文件,我不会提供的。

如何用 EmEditor 来拆开 LRC 歌词

刚写了篇关于音乐的文章,引用了歌词,因为我用的播放器没安装歌词插件,同时也没有工具来格式化 LRC 歌词为人读的歌词,于是便想到了用 EmEditor 的正则表达式替换功能。

用 EmEditor 打开 LRC 文件,替换(?<=])([dd:dd.dd])([^[].*)$2n 多次(要勾选上正则表达式)直到每行都只有一个时间戳之后即可拆开 LRC 歌词,然后再点“编辑→分割值或排序→按文本由前到后排序”,排序一下。之后便是按照时间顺序排列好的歌词。

如果不需要时间戳,可以再替换^[dd:dd.dd]为空白即可。