正则表达式(regular expression)有着强大的功能,但也不是万能的,匹配(match)匹配(balanced)的括号(parentheses)就是一个挺头疼的问题。不过perl正则表达式中的一个扩展(??{ code })却能很好的处理这个问题。直接就能把上下文无关文法(Content-Free Grammar, CFG)

P --> <empty>
P --> ( P )
P --> P P

改写成对应的正则表达式

$paren = qr#|\((??{$paren})\)|(??{$paren})(??{$paren})#;

不过由于(??{$paren})(??{$paren})中的第一个(??{$paren})可以不断匹配0个字符,因此它不能正常工作,不过只要稍加修改,其等价形式

$paren = qr#|\((??{$paren})\)(??{$paren})?#;

就能够完成匹配balanced parentheses的工作了。

(??{ code })是动态正则表达式,code将在运行时求值,所求值再作为正则表达式。

This is a “postponed” regular subexpression. The “code” is evaluated at run time, at the moment this subexpression may match. The result of evaluation is considered as a regular expression and matched as if it were inserted instead of this construct.

其很重要的一个用途就是实现正则表达式的递归(recursion)

利用这个扩展,可以实现一个简单利用递归判断html标签是否合法匹配的正 Continue reading “递归正则表达式 —— (??{ code })” »

Comments 2 Comments »

Python里有个特殊的变量__name__,如果当前模块是主模块,则为’__main__’,否则为模块名。通过判断

if __name__ == '__main__':

执行不同的代码,这样一个模块即可被重用,又可以单独执行,这种结构在Python里非常常见。也可以在if里简单的做一些模块的测试:

# gao.py
def scanl(s, f, a):
	retval = [s]
	for v in a:
		s = f(s, v)
		retval.append(s)
	return retval

if __name__ == '__main__':
	print scanl(1, int.__mul__, range(1, 10))
else:
	print __name__, 'imported'
#> [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]

而当gao被import时,这些测试将不被执行:

# gaogao.py
import gao
print 'in' + __name__ + ':', sum(gao.scanl(10000000, int.__div__, range(1, 20)))
#> gao imported
#> in__main__: 27182814

在Perl中虽然有个类似的__PACKAGE__可以得到包的名字(get package name),但是却不像Python中的__name__那样可以判断是否是直接执行的。我没 Continue reading “caller in Perl & __name__ in Python” »

Comments No Comments »

Get the Flash Player to see the wordTube Media Player.

ねこ巫女れいむ

〜喵巫女灵梦〜
Flash by: takenoko
Arrange by: ARM
VOCAL by: Miko
Song by: IOSYS

还有相当萌的猫巫女灵梦flash(download附)
[http://watashi.ws/file/neko_miko_reimu.swf](object not displayed)

月夜を隠さない程度の能力?

月夜 => 腋
又是miko酱(藤咲かりん)的名曲,至于《月夜を二人で抜け出す程度の能力》和《お賽銭ちょうだい》就pass了。

Dreaming

Vocal:nomico
サークル:Alstroemeria Records
アルバム:Dolls
Arranger:Masayoshi Minoshima

这里面还有一段藏头的歌词:

夢を追う乙女たち すべてが消えて行くん前に
トキめきも忘れずに すべてが失う前に歩くわ

()き出す夢を追い続け
節(せつ)を越えて戦うわ
来(らい)のことは見えないわ
(わ)れぬように先を見て
度(いど)の心貴方には
(や)すことさえ出来なくて
駄(だ)なことなど無い筈よ この道

和起来就 Continue reading “[Vocal]少女綺想曲 ~ Dream Battle” »

Comments 3 Comments »

まずもって〜旧正月あけましておめでとうございます〜
来年もよろしくお願いいたします

正如标题里的[流水],这只是一篇关于自己如“流れる水”般农历牛年的流水账。

  • 首先是寒假,这似乎是大学唯一一次能待到十五的寒假,和父母一起看了彩车龙灯花火,下次在家过元宵不知是何时了
  • 2月份回到学校,终于下定决心结束了在218的土著生活。当然,每天绝大多数的时间还是呆在218的,只不过不怎么在那里睡觉了而已,时差依然混乱中
  • 2月开始的2009 TCO Algorithm,主idrejudge幸运而又不幸地直接晋级Round 1。我也因此人品耗光,Round 2的时候以0分杯具,最终没有实现获得Tshirt的目标
  • 3月底的浙江大学校赛大杯具,队伍的表现也让人失望,自己因此有点情绪低落
  • 3到4月准备World Finals过程中做了大量的大妈题,也就是Andrew Stankevich’s Contest,完成了#1-#5的解题报告,收获非常大,但现在#6-#10却没了动静
  • 4月份最难忘的就是在Stockholm ACM-ICPC World Finals中,作为Zodiac的一员,同队友hhangerFire创造了ZJU历史上的最好成绩,第六名,银牌
  • 从瑞典回来当天就奔去宁波参加全国邀请赛,两位广东队友居然用广东话讨论,让我着实郁闷,最后技不如人,仅获第二,第二次失去帮ouyang保研的机会
  • 5月17日的浙江省省赛依靠速度和一点rp获得了冠军,完成了帮ouyang的保研
  • 6月11日是每年一度的竞赛表彰会,关键在于有米领,会后编程答疑版举行了例版聚,很hi,ms是自己第二次组织版聚
  • 6月14日百度之星复赛,而我却在连续参加大学物理一/二重修的考试,结果两门70+的成绩替代了我原本物理学一/三90+的成绩= =b
  • 找了个更大的硬盘重新架设了90(zjuicpc-host),更新了软件,然后慢慢加了一些东西,问题还很多,希望有时间折腾
  • 6月20日是CET6的日子,还要感谢owen在最后一天帮我交了报名费,还有寒mm考试前给我的2B铅笔,让我最后以裸考480多的成绩低空飘过。于是刚好可以研究生英语免试了
  • 7月的主题自然是集训和校队选拔,可开始的一个星期我却还要忙于数学系的短学期课程——Photoshop!整个7月是相当忙碌,也累得够呛
  • 7月份另一件麻烦事就是搬寝室,我从蓝田4舍6046.4搬到了蓝田4舍6036.4,折腾死我了
  • 7月19-21日去北京参加了有道难题决赛,比赛时如同梦游,显然是杯具了。此行最大的收获是ym到了dmks前辈,当然最后白捡了个300G的移动硬盘也是很爽的
  • 没能力去百度决赛也不是坏事,7月22日刚回到杭州就人生唯一一次观看到了日全食
  • 7月底去深圳参加了为期一周的腾讯创新夏令营(TIC’09),有不少收获,包括来自组织方的和营友的,也接受了不少tencent价值观。最杯具的是因为自己再度比赛中梦游而以一名之差和5000米奖金失之交臂 555
  • 腾讯创新夏令营结束后直接从深圳回家,没待多久就又回学校开始漫无止境的八月
  • 8月的主题是组队集训,我和jay哥寒mm组成的浙江大学的ACM-ICPC三队yukkuri。训练中队伍的配合表现不佳和日益临近的Regional让我不免焦虑了起来,好在最后大家共同克服了问题,队伍也成长了起来
  • 8月开始租了一个海外的VPS,主要用途是用了架设VPN用于上网,后来又架了现在的blog: ゆっくりでいいさ。感谢一 Continue reading “[流水]己丑年” »

Comments 18 Comments »

皆様いかがお過ごしでしょうか?
1年の充電期間を経て、
東方Project二次創作ミュージックビデオアニメーション
『東方活動写真館 ~第二幕~』を発表いたします。

2010年3月14日(日) 東京ビッグサイト
第7回博麗神社例大祭『む26a』にて頒布予定です。
よろしくお願いします。

HP:http://tohokinemakan.jp/
前作:http://www.nicovideo.jp/watch/sm6397973

大家混得怎样?
经过一年的充电
东方Project二次创作music video动画
《东方活动写真馆 ~第二幕~》即将发表

预定于2010年3月14日(周日)东京Big Sight的
第7回博丽神社例大祭 在『む26a』坑发布
夜露死苦!

東方活動写真館第二幕将在第7回博麗神社例大祭华丽登场,万分期待啊。到时候不知道是不是可以把现在的blog背景也更新换代一下。

tohokinemakan2-pv

例大祭7里更加期待的是舞風『夢想夏郷』第二話,千万不要跳票啊。这句「…たぶん」让人看了真疼啊。不过原本都不抱希望能活着见到梦想夏乡第二话了……

cut_reitaisai2010

最后附上【ニコニコ動画】【東方】東方活動写真館 ~第二幕~ プロモーションムービー【PV】

Continue reading “『東方活動写真館〜第二幕〜』頒布予定!” »

Comments 2 Comments »