Kevin 的个人资料Country Metro照片日志列表更多 工具 帮助

日志


2009/3/16

[转] 只要生命不息就要坚持到底

我不是为了失败而来到这个世界上的
在我的血管里已没有失败的血液在流动
我不愿意听失败者的哭泣
埋怨者的牢骚
只是羊群中的瘟疫
在我的字典里没有不可能,行不通,办不到,没希望,失败,挫折,放弃等愚蠢的字眼
我要把每一天的奋斗
就象冲洗高山的雨滴
侵吞猛虎的蚂蚁
普照大地的星辰
建造金字塔的奴隶
我也要一砖一瓦的构筑自己成功的殿堂
我深信滴水穿石的道理
我相信古老的成功法则
每失败一次就等于走向成功一次
这一次的拒绝就是下一次的赞同
这一次皱起的眉头就是下一次舒展的笑容
今天的不幸
往往预示着明天的好运
当夜幕降临
我回想一天的景运
我总是心存感激
当我在遭人拒绝时
我要一试再试直到每一天的成功
当我精疲力竭时
我要抵制回家贪图享受的诱惑
我不应昨日的成功而感到满足
这是失败的先兆
我也不应昨日的失败而感到气馁
我深信
只要生命不息就要坚持到底
2009/3/9

人生舞台

http://www.youtube.com/watch?v=7RkWs6P2IwE&feature=related

click above link for video clip

I can tell by your eyes that you've prob'bly been cryin' forever,
and the stars in the sky don't mean nothin' to you, they're a mirror.
I don't wanna talk about it, how you broke my heart.
If I stay here just a little bit longer,
If I stay here, won't you listen to my heart, whoa, heart?

If I stand all alone, will the shadow hide the colors of my heart;
blue for the tears, black for the night's fears.
The star in the sky don't mean nothin' to you, they're a mirror.
I don't wanna talk about it, how you broke my heart.
If I stay here just a little bit longer,
if I stay here, won't you listen to my heart, whoa, my heart?
I don't wanna talk about it, how you broke this ol' heart.

If I stay here just a little bit longer,
if I stay here, won't you listen to my heart, whoa, my heart?
My heart, whoa, heart.


在这个monent, 凌晨2点半, 无意中看到you tube这个live, rod stewart & amy belle同台演出的 i don't want to talk about it. 莫名的感动, 一遍又一遍地看, 这个video,让我热血沸腾,让我夜未眠,我找到一种感觉, 舞台的感觉, 生命的感觉,我开始迷恋舞台,迷恋舞台上的灯光,还有萨克斯 .

 

一个show,就是一个人生,人生也是一个show, rod 和 amy 就像生活中的两个人,他穿着黄色的西装走在在生命的舞台上,很潇洒,很尽情。蓬松的头发,深遂的眼神,拿起mic柱的那image真的太帅了,大幅度的肢体动作,更显得随和,对生活的得心应手。脖子上的珠链衬得她更加的高贵,他邀请她来到他的舞台,来到他的生活,一起为这个show扮演他和她的角色。

 

这是“他们”人生路上共同的show,他和她一起唱出“to my heart”,生活少不了萨克斯,少不了guitar,少不了keyboard...更少不了吹萨克斯的人,少不了bass手,少不了keyboard 手,少不了灯光师,少不了舞台,更少不了,台下的观众。他和她是舞台上的主角,舞台上的配角为他和她拉出生命的布景,所有的配角都是我们应该感恩的:

萨克斯,

guitar,

keyboard,

piano,

violin,

灯光,

mic,

...

所有的工作人员,

当然,还有观众.

 

在我们的生命中,我们会遇见很多的人,事,物,有些人成为我们的父母,有些人成为我们的子女,有些人成为我们的朋友,在一生20,000多天的日子里,我们接受萨克斯,guitar,piano,violin的伴凑,接受舞台的灯光,观众的鼓舞,喝彩。但是,一切的一切,都不是理所当然的,我们应该感恩所有的一切,好的和不好的,它们都给我们的生活增加了色彩。

歌曲唱完,全场起立,为他和她的演出致意.

2009/3/6

Red Wine, Macau

after 00:30 may 16 2008
crown towers, taipa, macau

忙完工作,朋友提議開車前往六星級皇冠酒店品紅酒。
皇冠的lift很快,幾秒就去到頂樓38樓酒吧 - 天宮。
凌晨,微微海風,38樓,天臺,很舒服的時光,很舒服的地方。
景色很美,能看到西灣大橋,澳氹大橋,友誼大橋以及新口岸區繁華的夜景。
 
 
紅酒很美,點心也很不錯,當然也很貴,上面這3樣就mop150左右了
2008/2/25

秘密, 不能說的

本月21, wyman, 矮露杰 & me前往澳門水坑尾宏達圖書中心買 "秘密"

導購員: 先生, 要買咩書啊? (先生, 要買什么書)
矮露杰: 秘密
導購員: 唔講得噶? (不能說的?)

忍不住的我們在后面笑

繁體版, mop 83/本
2008/1/12

[管道的故事] 成為百萬富翁不是一種機會, 而是一種選擇

 

管道的故事

成為百萬富翁不是一種機會, 而是一種選擇 , 選擇比努力更重要

轉載一文,是該書的一部分概要,建議買書看,絕對值得購買以及花時間用心去讀

------------------------------------------------------------------------------------------------------------

管道故事

久、很久以前,有两位名叫柏波罗和布鲁诺的年轻人,他们是堂兄弟,雄心勃勃,住在意大利的一个小村子里。 两位年轻人是最好的朋友。 他们是大梦想者。 他们不停里谈着,渴望有一天能通过某种方式,让他们可以成为村里最富有的人。他们都很聪明而且勤奋。他们想他们需要的只是机会。

一天,机会来了。村里决定雇两个人把附近河里的水运到村广场的水缸里去。这份工作交给了柏波罗和布鲁诺。两个人都抓起两个水桶奔向河边。一天结束后,他们把整镇上的水缸装满了。村里的长辈按每桶水一分钱的价线付钱给他们。” “我们的梦想实现了!”布鲁诺大喊着,“我简直无法相信我们的好福气。” 

但柏波罗不是非常确信。他的背又酸又痛,提那重重的大桶的手也起了泡。他害怕明天早上起来又要去工作。他发誓要想出更好的办法,将河里的水运到村里去。 
“布鲁诺,我有一个计划,”第二天早上,当他们抓起水桶往河边奔时,柏波罗说,“一天才几分钱的报酬,而要这样来回提水,干脆我们修一条管道将水从河里引进村里去吧。”  布鲁诺愣住了。 

“一条管道?谁听说过这样的事?”布鲁诺大声嚷嚷着,“柏波罗,我们有一份很不错的工作。我一天可以提100桶水。一分钱一桶水的话,一天就是1元钱!我是富人了!一个星期后,我就可以买双新鞋。一个月后,我就可以买一头母牛。六个月后,我可以盖一间新房子。我们有全镇最好的工作。我们一周只需工作五天,每年 2周的有薪假期,我们这辈子可以享受生活了!放弃你的管道吧!” 

但柏波罗不是容易气馁的人。他耐心地向他最好的朋友解释这个计划。柏波罗将一部分白天的时间用来提桶运水,用另一部分时间以及周末来建造管道。他知道,在岩石般硬的土壤中挖一条管道是多么艰难。因为他的薪酬是根据运水的桶数来支付的,他知道他的收入在。开始的时候会降低。而且他亦知道,要等1、2年,他的管道才开始产生可观的效益。但柏波罗相信他的梦想终会实现。于是他就去做了。

布鲁诺和其他村民开始嘲笑柏波罗,称他“管道人柏波罗”。布鲁诺赚到比柏波罗多一倍的钱,·炫耀他新买的东西。他买了一头驴,配上全新的皮鞍,拴在他新盖的两层楼旁。

他买了亮闪闪的新衣服,在乡村饭馆里吃可口的食物。村民尊称他为布鲁诺先生。当他坐在酒吧里,为人们买上几杯,而人们则为他所讲的笑话开怀大笑。 

小小的行为等于巨大的结果 

当布鲁诺晚间和周末睡在吊床上悠然自得时,柏波罗还在继续挖管道。头几个月,柏波罗的努力并没有多大进展。他工作很辛苦二—比布鲁诺的工作更辛苦,因为柏波罗晚上和周末都在工作。但柏波罗不断地提醒自己,明天梦想的实现是建造在今天的牺牲上面的。一天一天过去了,他继续挖,每次只是一英寸。 “一英寸、又一英寸成为一英尺,”他一边挥动凿子,打进岩石般硬的土壤中,一边重复这句话。一英寸变成一英尺,然后10…20…尺……100尺……” 

“短期的痛苦等于长期的回报,”每天完成工作后,筋疲力尽的他跌跌撞撞地回到他简陋的小屋时,他这样提醒自己。他通过设定和通过每天的目标来衡量工作成效。他知道,终有一天,回报将大大超过付出。 “目光盯在回报上,”每当他慢慢入睡,耳边尽是酒馆中村民的笑声时,他一遍遍地重复这句话。 “目光盯在回报上。” 

时来运转    

一天天、一月月过去了。有一天,柏波罗意识到他的管道完成了一半,这意味着他只需提桶走一半路程了!柏波罗把额外的时间用来建造管道。完工的日期终于越来越近了。 在他休息的日候,柏波罗看到他的老朋友布鲁诺在费力地运水。布鲁诺比以前更加驼背。由于长期劳累,步伐也变慢了。布鲁诺很生气,闷闷不乐,为他自己注定—辈子提桶而愤恨。 他开始花较少的时间在吊床上,却花更多的时间在酒吧里。当布鲁诺进来时,酒吧的老顾客窃窃私语:“提涌人布鲁诺来了。”当镇上的醉汉模仿布鲁诺驼背的姿势和拖着脚步走路的样子时,他们咯咯大笑。布鲁诺不再给别人喝了,也不再讲笑话了。他宁愿独自坐在漆黑的角落里,被一大堆空瓶所包围。 

最后,的大日子终于来到子——管道完工了!村民们簇拥着来看水从管道中流入水槽里!现在村子源源不断地有新鲜供应了,附近村子的人都搬到这条村来,村子顿时繁荣起来。 管道一完工,柏波罗便不用再提水桶了。无论他是否工作,水源源不断地流人。他吃饭时,水在流人。他睡觉时,水在流人。当他周末去玩时,水在流人。流人村子的水越多,流人柏波罗口袋的钱也越多。 

管道人柏波罗的名气大了,人们称他为奇迹制造者,政客们称赞他有远见,恳请他竞选市长。但柏波罗明白他所完成的并不是奇迹,这只是一个很大、很大梦想的第一步。知道吗,柏波罗的计划大大超越了这条村庄。

招募他的朋友帮忙    

管道迫使提桶人布鲁诺失去了工作。看着他的老朋友向酒吧,老板讨免费的酒喝,柏波罗心里很难受。于是柏波罗安排了一次于布鲁诺的会面。 “布鲁诺,我来这里是想请求你的帮助。”  布鲁诺挺起腰,眯着他那无神的眼睛,声音沙哑地说:“别挖苦我了。” “我不是来向你夸耀的,”柏波罗说,“我是来向你提供一个很好的生意机会。建造第一条管道花了我两年多的时间。但这两年里我学到很多!我知道使用什么工具、在哪里挖、如何排管。一路上我都做了笔记。我开发一个系统,能让我们建造另一条管道,然后另一条…另一条…

“我自己一年可以建一条管道。但这并不是利用我的时间的最好方式。我想做的是教你和其他人建造管道…然后你教其他人…然后他们再教其他人…直到管道铺满本地区的每条村落…最后,全世界的每一条村子都有管道。”“只要想一想,”柏波罗继续说,“我们只须从流进这些管道的水中赚取一个很小的比例。越多的水流进管道,就有越多的钱流进我们的口袋。我所建的管道不是梦想的结束,而只是开始。”   布鲁诺终于明白这幅宏伟的蓝图。他笑了,向他的老朋友伸出他那粗糙的手。他们紧紧地握住对方的手,像失散多年的老朋友那样拥抱。 

在提桶世界里的管道梦想 

许多年过去了。柏波罗和布鲁诺已退休多年。他们遍布全球的管道生意每年把几百万的收入泵进他们的银行账户。当他们有时到全国各地旅行时,柏波罗和布鲁诺遇到那些提水桶的年轻人。 这两个一起长大的朋友总是把车停下来,将自己的故事讲给年轻人听,帮助他们建立自己的管道。一些人愿意听,并且立即抓住这个机会,开始做管道生意。但悲哀的是,大部分提桶者总是不耐烦地拒绝这个建造管道的念头,柏波罗和布鲁诺无数次地听到相同的藉口。 “我没有时间”。 “我朋友告诉我,他认识的一个朋友的朋友试图建造管道,但失败了。”“只有那些很早加人的人才可以从管道那里赚到钱。” “我这辈子一直都提水桶,我只想维持现状。” “我知道有些人在管道的骗局中亏了钱,我可不会。” 柏波罗和布鲁诺为许多缺乏远见的人而感到悲裒。但他们承认,他们生活在一个提桶的世界里,只有一小部分人敢做管道的梦.

你是谁?——提桶者?还是管道建造者? 

你是否只有来到公司、把工作于了才有收人?好像提桶人布鲁诺? 或者你做一次工作,然后一次又一次地得到回报,就像管道建造者柏波罗一样? 如果你像大部分人一样,你在使用提桶计划换钱的陷阱”。你知道如下绕口令:一小时的工作换一小时的报酬;一个月的工作换一个月的报酬;一年的工作换一年的报酬;这听起来熟悉吗? 

我称它为“时间换金钱”的陷阱。提桶的问题在于,当你停止提桶时,收入也停止了。即是说有保障的工作”或“梦想的工作”的概念只是一个幻觉。提桶的浅在危险在于,收入是暂时的,而不是持续的。如果布鲁诺某天早上醒来发现自己背部扭伤,起不了床,那一天他可以赚多少钱?零!没有工作,就没有收入! 任何提桶的工作都是一样的。只要提桶者用完了病假日或休假日,如果他们不继续提桶,他们就不会得到薪水。 牙医不能再提水桶了。这是一个真实生活中的例子。我的前任牙医是我所见过的最好的牙医。她是个典型的专业人士,性格很好,医术高明,几乎每次拜访她都毫无痛楚。另外,她喜爱她的工作。她自己安排时间,她的诊所每周只营业3天,以便她有四天的时间和家人在一起。 

在这份她所喜欢的工作中.她每周工作3天,而每年收人为10万美元。如果曾经有过的话,这就是提桶者梦想中的工作。 
有一个问题。40岁之前,她的手患了关节炎而无法再工作。现在她在当地一所大学教书,收入是做牙医时的l/3。虽然她没 有做错任何事,但她理想的工作消失了。 
现在你是否明白,为什么我说从来没有一份有保障的提桶工作吧?你是否看到提桶的工作是多么脆弱? 

时间换钱陷阱的问题在于,如果你不交换时间,你就赚不到钱。管道人柏波罗很早就意识到提桶的局限。于是他决心建立一个系统,无论是否投人更多的时间,他都能不断得到报酬。他明白提桶是毫无保障可言的,他明白管道是他的生命线。如果明天你不能付出时间,你会怎么样? 你呢?如果明天你的收入中断了,你怎么样?  如果你被解雇了,会有什么发生? 如果你病了或身体不适,无法继续提桶,会有什么发生?如果某一次医疗意外耗尽了你所有的积蓄,怎么办?如果你的公积金一夜之间无影无踪,怎么办?如果明天你的收入中断了,你可继续支付房屋分期付款到何时呢?买车的分期付款,又如何呢?还有孩子上学的费用呢?六个月?三个月?三个星期?!!!如果灾难降临,你是否有生命线保护你和你的家人呢?抑或呢?

无论你是个清道夫、或者是个秘书、或者是个专业人士保障在哪里?它称为管道——持续性收人——不管你有否继续付出时,你都可以从管道那里得到收入,当你当你玩乐时,管道在付钱给你,管道是一天二十四小时、一周七天、一年三百六十五天不停地为你工作。管道是生命线。因为它们让人们摆脱时间换钱的陷阱 我们生活在几十年来最富裕的经济状况中,然而数百万的人仍从工资支票到工资支票地生活,工作时间越来越长,而仅仅为了收支平衡。为什么呢?因为他们在使用错误的计划,他们掉进了用时间换金钱的陷阱中。

干一天的工作,拿一天的钱。听起来熟悉么?无论你是年收入仅一万元的洗碗工,还是十万元的医生,你都是用一个单位的时间换一个单位的钱。你仍然从一张工资支票活到另一张工质支票。至于“工作保障”————如果你因为被解雇、或疾病、或受伤、或受伤、或退休而不能工作,工资支票也会停止。哪里还有什么保障呢?你如何摆脱时间换金钱点的陷阱呢?通过建造来持续世袭收入的管道。有了世袭收入,你只要工作一次,就可以不断得到报酬。管道一天一天一年一年的连续泵,无论你是否在那里工作。现在那就是保障———真正的财务保障

如果您觉得这个故事好,请把它分享给您的好朋友,好东西与好朋友分享会给您带来好运!难道不是吗?

------------------------------------------------------------------------------------------------------------
 
西元2007年11月26日,我成為了"管道建造者" ^_^ 

2007/11/5

[转载]不当饮食易致钙流失

    很多人以为,通过饮食可以补钙,但实际上在日常饮食中,很多不经意、不正确的膳食行为会让你丢失大量的钙。

  磷多丢失钙:钙磷比例失衡是导致人们缺钙的元凶。正常情况下,人体内的钙∶磷比例是2∶1,然而,现实生活中,人们过多地摄入碳酸饮料、可乐、咖啡、汉堡包、比萨饼、小麦胚芽、动物肝脏、炸薯条等大量含磷的食物,使钙∶磷比例高达1∶10~20,这样,饮食中过多的磷会把体内的钙“赶”出体外。

  补钙不补镁,吃完就后悔:人们补钙的时候,只注意补充维生素D,却往往不知道要补充镁。
 
    钙与镁似一对双胞胎兄弟,总是要成双成对地出现,而且钙与镁的比例为2∶1时,是最利于钙的吸收利用的了。所以,在补钙的时候,切记不要忘了补充镁。含镁较多的食物有:坚果(如杏仁、腰果和花生)、黄豆、瓜子(向日葵子、南瓜子)、谷物(特别是黑麦、小米和大麦)、海产品(金枪鱼、鲭鱼、小虾、龙虾)。

  大鱼大肉“吃”掉钙:高蛋白饮食是引起骨质疏松症的原因所在。有人做过这样的实验:A:每天摄入80克的蛋白质,将导致37毫克的钙流失;B:每天摄入240克的蛋白质,额外补充1400毫克的钙,将导致137毫克钙的流失。额外补充钙并不能阻止高蛋白所引起的钙流失,过量摄入大鱼大肉而不注意酸碱平衡,将导致钙的大量流失。那么,怎样饮食才能促进钙吸收?维生素C促进吸收钙:把含钙高的食物与维生素C和泡菜汁一起服用,或者每天自己制作脐橙、柚子、橘子、芦柑、柠檬饮用,其生物利用度要增强12%。显然是这些水果中大量的维生素C的参与,使得钙能更好地被小肠吸收。

  荤素平衡提高钙的利用率:比如豆腐炖鱼,鱼肉中含维生素D,豆腐含钙丰富。维生素D可促进钙的吸收,使豆腐中钙的利用率大大提高。另外,主食讲究谷豆类混食,不仅能使氨基酸互补达到最理想化,还能促进钙的吸收。

2007/10/16

三叠泉, 珠海

sep 22
公司同事, 本人, 共约十几人
10a.m.城市广场包车出发, 约45分钟车程到达, 开始bbq, 然后各自游玩
三叠泉的水好凉,最外面那个大湖, 看图, 水很清, 有个沙滩, 沙滩上有平衡木, 秋千可以玩, 还可以玩足球/排球
湖可以游水, of coz, 然后躺在树下的沙滩晒干, 吹着海风, 望着蓝蓝的天, 白白的云, 还有湖对面的甘蔗林, 好享受啊
646548021504850656 647392446434979939
DSCF0004 DSCF0023
DSCF0036 DSCF0038
DSCF0056
2007/10/5

Untitled 5

oct 3
和yan, andy 及andy弟弟行东门, 在sun plaza对面的baleno买了双板鞋,要2双才有20% off discount, 和另一个也只要一双的一起合买Hot,然后上到sun plaza,那里的baleno只买一双都有35% off discountCrying,好像每次去sun plaza都有很多discount,送的coupon全场都可以用,建议大家去东门买东西先去sun plaza看看

oct 4
和slyvia及她朋友去central walk,central walk很像the mixc 的模式,很多品牌店,有italy style的cafe shop,里面有间 反斗乐园 有赛车,比电脑的need for speed劲,有左方向盘的,也有右方向盘的,还可以link到隔离部机一起玩,还有类似cs的射击,舞机,鼓机,篮球...
2007/9/16

澳门

sep 15
 
gnohz(戴鸭舌帽的),本人
居于本人颇为喜欢那张gnohz偷拍本人的照片,只好牺牲下自己的色相Hot
有张大美女的其实是一幅广告^_^
 
两个极之无聊的人在大三巴和炮台拍花
 
恰逢澳门政府总部开放日(sep 15 & 16), 得于参观澳门政府总部,工作人员给每位客人派发政府总部的明信片和纪念品Open-mouthed,政府总部里面有棵白兰树,看图,鉴于本人对高中的三棵白兰树一直念念不忘,这棵树又颇像高中校园的某棵白兰.嗯,嗯......当然要拍啦.....
 
还有喷泉,因为是开放日,所以也开了,很漂亮,只有视频,太大,没放上来,要的可以send msn跟我索取
南湾湖有人划船落水,看图
当日为澳门国际烟花汇演第一天,只是太晚,9点才开始,没欣赏到
观光塔上有人玩"自由落体",其实接近匀速,要video的找我
 
过关去花了1个钟,回一个半钟,andrew说:mountain people mountain sea
 
 
2007/8/16

出差记事

我又过sz出差了,这次出差,收获不小 Open-mouthed 
 
认识了小玲,戈
小玲做文职的,很进取噢...
戈做marketing的,很好的一个人,给我讲许多他家乡和大学时的有趣事,还讲他驴行天下的事,大陆很多地方他都去过了,告诉了我很多出游的窍门,哈哈..
 
我的下一站是阳朔,努力Open-mouthed
 
礼拜天和yan去东门,yan介绍francis给我认识,francis是个资深的软件架构师,从singapore来sz工作,中文说得很好啊Hot,虽然不会写...
晚上yan的父母请我们吃饭,最喜欢那个汤了,超正啊,很久没喝到这么好喝的汤,多谢yan一家人...
 
从出差那天起基本上每天晚上都ot,前晚到11点,两个字,累..
 
 
add sep 16
本是要说服经理本月活动去阳朔的,结果却被不能出省驳回, 无比郁闷...
2007/7/30

國際投資銀行業需要什么樣的人才

copy 05年旧blog转载的一文...

谢老离开了morgan stanley, 应该轻松了... 梁锦松去了blackstone, 出了个idea让中国外汇入股blackstone的ipo, 做的很漂亮..

本人从此文获益不少,是个不错的投行市场summary, 多次拜读...

------------------------------------

国际投资银行业需要什么样的人才

全球金融市场是个充满生机与变化的领域,业内领先者的普遍共性是精力充沛、热情向上、学识丰富、高度自律与极强的自我约束力。说起投资银行家的生活,浮现在你眼前的或许会是舒适优越的工作环境和极其丰厚的收入等。然而,这并不是他们真实人生的全部,在成功的背后,每个人都倾注了自己的全部精力,付出了异乎常人的巨大努力
 
  投资银行的职业背景要求 
  以跨国投资银行的证券销售人员为例,他必须每天浏览包括《华尔街日报》、《财富》、《商业周刊》、《福布斯》等大量专业财经报刊,同时还要关注来自彭博资讯、路透社、CNBC和CNN的最新金融报道。在仔细研读、消化和吸收后,他需要分析出这些新闻将如何影响客户的投资,将自己对信息的领悟与见解传递给客户。如果一个负责美国市场的证券销售人身处亚洲,他就必须在美国市场开市交易到闭市的时段一直工作(相当于北京时间从晚上9:30到凌晨4:00),在关注市场每时每刻的动态和各家上市公司的信息后,还务必在第二天亚洲时区的正常工作时间准时上班,经过短暂的几个小时的睡眠后,还要与当地的客户洽谈。这种每周平均工作50到90小时、不分昼夜、黑白颠倒的生活几乎打乱了一个人所有的社交生活和与家人团聚的时间。一旦进入这一行,你就必须对自己的生活方式高度自律。所以,职业银行家应该做好长期奋斗的心理准备,调整自己的生活节奏,保持坚持不懈的专业精神。

  跨国投资银行帮助企业和政府发行证券,帮助投资者购买证券、管理金融资产、进行证券交易与提供金融咨询等服务。因此,投行从业人员需要极为熟悉欧美国家(尤其是美国市场)的主要经济指标和统计数据的解读及其在投资银行具体行业研究中的应用,包括国内生产总值(GDP)、采购经理指数(PMI)、就业指数、生产者物价指数(PPI)、消费者物价指数(CPI)、零售指数、新屋开工/营建许可、耐用品订单及领先经济指标的含义与分析用途,并对综合产业、房地产、技术、电信、交通、公用事业、银行、能源、原材料和消费品等主要产业部门的推动因素和财务评估方法反应敏锐。

  在欧美发达国家与地区,许多大学毕业生在刚进入投资银行时都是从分析员做起的,要想做好这个工作,你必须具有特别的技能,并且能思路清晰地分析问题,这样你才有可能成为高级经理。在事业的中期,你的成功取决于你能否和与客户交流并能顺利进行交易的能力。同时,你还要了解市场、政治和宏观经济情况以及运作机制。

  投资银行的一些工作要求很强的数学功底,如果你的数学很好,不妨考虑在理工类学科中再拿一个更高的学位(如随机演算和微分方程学),然后继续在财务分析和股票评估等学科中选修几门更深的课程,最后在华尔街申请一个研究部门的工作。在大多数分析员的工作中,正确地分析财务数字是非常重要的。如果你想成为一个证券分析师,你必须努力获得CFA(注册金融分析师)职称。如果有一天,你有志从事融资业务并成为公司财务分析家,你最好再考虑考取CMA(注册管理会计师)。

  很难说什么样的人就是一个优秀的交易者,但至少你必须能充分了解市场,反应迅速,能作出准确的分析。建议你读一下所罗门兄弟前交易员迈克尔.刘易斯的经典之作——《说谎者的扑克牌》,你会学到很多有关交易领域的知识。在投资银行中获得成功的关键是团体协作,能够将每一个人团结起来、共同为客户服务是一个巨大的挑战,当然回报很可能是非常高的。

  有科技和法律背景的员工对投资银行来说价值很高——科学家可以从事任何类型的工作,从计算金融衍生产品到生物工程学;律师则可以协助设计新型证券,进行租赁经营,并用他们杰出的分析能力与客户交流“学会推销自己”是成为银行家的基本功,进入投资银行业的关键是关系网——或许你早已被这种关系网吸引,但如果你还不具备,就应迅速建立自己的人际网络,多参加一些行业会议,并在同学通讯录里找一些从事商业的朋友......当然,关系网不一定马上就能起作用。如果你还年轻,还没有取得MBA学位,就应该努力进入最好的商学院学习。

  进入投资银行业之后,在通常情况下,你应负责把你接受的每一个项目及时做好。如果你已经成为高管(通常为董事,董事总经理以及更高层管理人员),你必须要承担更多的风险。在这种职位上不能很好地胜任工作的人,就要被迫离职。

不同业务工作的要求

  企业融资(Corporate Finance)
 
 
  如果你在企业融资部门工作,应该帮助公司为新的项目和以后的项目集资,你应该能够做到通过资产、负债、可转换证券、优先证券或衍生证券等方式确定客户所需的资金数量和构成。作为一名新的分析员,你通常应该更多地和客户打交道。

  并购(M&A)

  一个公司购买另一个公司的交易是许多投资银行资金收入的一个重要来源。如果你从事这类工作,应该成为客户的咨询者,为交易估值、创造性地确定买卖结构,并协商对自己有利的条款。投资银行经常要自己承担投资风险,不断直接参与杠杆收购(LBO)、企业分拆、附带利益和过渡贷款的安排。你的任务是分析适当的参与形式。

  随着竞争的加剧,小型投资银行获得生存的机会越来越小,于是,投行间的联手成了必然的途径,一些投行巨头开始显山露水。这些银行巨头往往为其大型客户提供广泛服务,帮助企业开阔眼界。为了更彻底地了解客户,他们会与客户公司的执行官交流,参观客户公司,对其产品进行测试。与证券承销相似,在并购领域也存在一种“品牌效应”——一家技术公司在上市之前,人们往往会考虑其IPO是由高盛这样的大公司操刀还是由二流公司主持,虽然IPO发行的过程是相同的,但其结果却有着天壤之别。大多数公司认为,如果其原始股能被顶尖级的投资银行接手,那么其在资本市场的成功将成为既定的事实。在并购领域也是如此,摩根士丹利的Cory、德意志银行的Thornton、高盛的L'Heureux 和雷曼兄弟的Brand绝对是技术并购领域的行家里手,如果在技术并购交易中有上述任何一位加盟,这绝对是一个好兆头。

  项目融资

  项目融资包括为公司或政府主要的资产负债表上提到的基础设施和石油资产项目筹资,瑞士信贷第一波士顿和德意志银行在这一领域非常活跃。项目融资交易已经成为将外资引入发展中国家的最主要的渠道之一,当其它借款枯竭时,一般来说项目融资仍然存在。

  交易

  投资银行中最令人羡慕的工作之一是交易,你的责任是在商业银行、投资银行和大型的机构投资者中进行资产、股票、外汇(简称Forex 或FX)、选择权或期货的买卖。交易是一件复杂的工作,因此要求你具有全面的市场知识、金融工具和心理直觉。资本交易的工作经常包括给其它交易者“讲一个故事”,告诉他们买你的股票的原因。固定收入交易的工作要求有很强的分析问题的能力并具备必要的资金,以管理交易比较少的市场中的大量盘存。衍生品交易者需要很强的分析能力(最好具备工科学位)。外汇交易更主要的是要求交易者对市场、政治和宏观经济方面有直觉感。

  结构化融资

  结构化融资的工作包括金融工具的创新,以便重新将资金流入投资者中(作为有资产支持的证券)。普通的有资产支持的证券会将应收信用卡、自动应收贷款或抵押贷款证券化,其他正在不断变化的领域有资产支持的证券商业票据、有抵押的债券债务(CBOs)和重新包装的资产工具。如果你能同时具备绘制电子表格、会计和法律的技能,无疑是非常有利的。

  衍生产品

  衍生品的价值来自原始证券,选择权、掉期和期货都属于衍生品。衍生品市场是巨大的,并且越来越规范。衍生品业务是一项高利润的业务,它对从事这项工作的华尔街人员的要求很高。如果你对这类工作感兴趣,可以先学习数学。除了销售技能非常重要之外,你将听到的另一个词是“结构化票据”,一个结构化票据可以是根据客户的需求在选择权中出现的外汇借贷、远期或期货合同。

  咨询服务

  投资银行为大众或私人提供并购和金融方面的咨询服务,许多投资银行都设有风险管理的咨询服务。

  股票和固定收益研究

  一般来说,证券分析员会被指定做某个企业或地区的分析研究,你的任务可能是向投资者推荐股票和债券,需要不断与公司和机构投资者联系。投资银行经常雇用那些有企业工作经验的人做分析员(却不是那些刚毕业的MBA或本科生)。比如,你是某个餐馆的经理,你可能就会成为餐馆业的分析员。了解业务、能够和客户交流并有良好的预见性是做好这项工作的重点。基础研究人员会根据公司的发展状况、首席执行官的状况提供一些建议。相反,电脑分析员要通过计算机程序来确认贬值的证券、市场甚至是国家。这类工作不多,但由于个别工作要求的专业技能很高,其收入也很高。

  国际交易和新兴市场

  尽管亚洲和拉美国家曾出现过经济与金融危机,但投资者对证券发行的需求仍然很大,投资银行会派出很多专业的交易人员和专家来满足这个要求。另一个有高需求的领域是新兴市场,如泰国或墨西哥市场。金融机构需要雇用一些既精通外语,又愿意经常出差并了解新兴市场的员工。

  市政债券

  市政公债市场巨大并需要分析师、市政咨询专家和商人来研究它。搞财政的工作很难争取到,但是这行的报酬却很高。曾在政府行政部门工作过的人会对投资银行业务有很强的吸引力,市政业务的主要增长点是项目融资这一块。

  证券交易经纪人

  证券交易经纪人的工作是为个人买卖股票、债券和其它投资服务,有些经纪人只为收入高的客户服务,而有些经纪人则不加以区分地为所有客户服务。尽管这个行业开始做时很难(尤其是你的年龄要比客户小得多),但只要你具有相当水平的交易技能,你的回报将是很高的。

  机构销售

  机构销售的工作主要是负责将有关特殊证券的信息传递给机构投资者。销售技巧和掌握产品知识是至关重要的,这关系到你是否有能力说服工作繁忙的机构投资者(保险公司、共同基金和养老基金等)。

  投资银行的收入水平

  在通常情况下,一个本科生最初开始从事投资银行业务的年薪标准大概是25000美元到50000美元,其中包括奖金(一般担任助理或普通分析员职务)。有MBA学历的毕业生年薪范围是60000美元到135000美元。不同的公司,不同的地区,薪金标准各不相同,一般刚开始时,奖金占薪金的10%到50%,然后慢慢增加到1-3倍。目前,投行薪金的趋势是给予股票期权,进入投行3年以上不能流动。这样做对公司有利,因为它减少了人才的流动性。如果你是一名分析员,可能不会遇到这种情况。

  受近年来世界经济持续不景气的影响,以高盛、摩根士丹利为代表的跨国投资银行纷纷把削减成本的“大刀”挥向了素以高薪著称的银行家,相当部分员工不得不面对“零红包” 的严峻现实,投行业的整体收入退回到上世纪90年代中期的水平。

  以投行中级别最高的董事总经理为例,在2002年拿到的“红包”金额介于25-35万美元之间,较2000年证券市场巅峰时期的150-175万美元大幅下降了80%以上。他们的基本年薪维持在20万美元左右。

  地位处于中游的副总裁的“红包” 则从2000年的100万美元水平滑落至15万美元,他们的平均年薪在12万-15万美元之间。至于通常由刚从商学院毕业的MBA担任的高级经理,“红包”能拿到4万美元就算幸运了,他们的基本年薪介于55000 -85000美元之间。

  在投行界,津贴与补助一般占到银行家每年总收入的一半。摩根士丹利、高盛和雷曼兄弟通常向员工支付得较早;而花旗环球金融公司和瑞士信贷第一波士顿则会延迟到来年3月才给付。

  猎头公司亿康先达金融服务业务全球主管Andrew Lowenthal 指出,过去在金融界,“零红包”往往意味着需要另谋出路,现在银行家因为无路可走,愿意接受这样的事实。不过,即使没有“红包”收入,大投行董事总经理的收入仍是英美国民平均年薪的5倍;高级经理的收入可达到平均水平的3倍。在资本市场整体低迷的大气候下,证券界正在向凭借业绩获取“红包”的时代回归。

  投资银行需要什么样的人才

  随着大中华区越来越多的企业上市,国际性投行忙得不可开交,不少公司都表示要增加人手。但投资银行最需要的是什么人呢?在人力顾问公司Hudson任职银行及财务招聘组长的卓东樱说,投资银行在中国内地的招聘比起商业银行要少很多, 不过随着市场的开放,投行的潜力比很多行业都大。她说,现在投资银行最渴求有丰富经验而又了解中国国情的人,能说普通话当然最好,但对中国的国情及企业的了解也非常重要。所以,海归派和香港人在这方面都具有优势。

  而对中国内地年轻人来说,竞争非常激烈,因为投资银行是过去2、3年才开始较有规模地招聘毕业生,想加入这个行业的人却越来越多。投行除了在大学举行校园招聘外,也会与商学院合作举办课程来挑选人才。但中国内地每年有成千上万的商科学生毕业,要脱颖而出不是一件易事。

  摩根士丹利副总裁、负责亚洲人力资源调配的韦文翰说,投资银行最基本的要求是,求职者要有好的学业成绩,因为成绩代表一个人学习的能力及潜质。由于中国商科毕业生比比皆是,MBA 学位也逐渐变成必需。不过,他说中国内地的学生有一个通病,就是只着重学习的表现。拥有一张满分的成绩表,并不代表一个人能成为出色的银行家,一份均衡的简历才是银行最想看到的。“投资银行是充满竞争的行业,能力、热诚及目标当然重要,但创造力及忍耐也是不可缺少的。”他说,除了学业上有好的表现之外,投资银行也喜欢一些在其他方面有成就的人,例如音乐,艺术或体育。“一个有才华的人,代表他是一个充满热诚的人,这种热诚往往能够在事业上帮助他们”。

  不过,希望加入投资银行的人也要有心理准备,这将会是一份竞争及压力均非常大的工作。在投资银行工作了7年多、现于ING霸菱香港公司担任地产分析员的李智颖说,她每天至少要工作12小时,除了要对自己负责的行业及公司有很深入的认识外,还要掌握整个社会的经济发展情况,因为每一件看似简单的事件、每一个普通的数据都可能对地产业带来重大的影响,而客人就依靠你的判断去做买卖。她说:“这是一个充满挑战性的行业,但也是一个奖罚很分明的行业。”

  作为业界的资深人士,瑞士信贷第一波士顿(香港)董事总经理郭淳浩认为,投资银行是工资最高的行业。这位年薪过千万元的高级银行家提醒想入投行的年轻人要注意三要素。毕业生欲投身投资银行业,先决条件是学历够,因为有没有机会面试,第一关就是学历。“Make yourself interesting(令自己有趣),是我挑选应征者的另一考虑要素,应征者需表达出他如何将自己定位,跟别人有所不同。”其次是要“烂做”,切忌怕吃亏,尤其是开头几年需要“死做烂做”。他语重心长地说,“越能做的人,就会有越多的事情做,但是付出的肯定会跟薪酬不成正比。打工仔一定要能吃亏,永远让老板觉得你在吃亏才有得做,如果有一天,老板发觉你在占便宜,难有好结果。”第三个要素,就是新人要争取机会跟上司去见客户,毕竟全香港的上市公司中,肯光顾顶尖的投资银行的,郭淳浩估计不多于100家,所以行业内竞争激烈;而客户在利用投行的专长的时候,也会教你怎样做,在变相地指点你。“可能英雄见惯也是常人,但对于后生仔来说,若打算日后在商界发展,有机会拜会商场中最厉害的人,这行无疑是最理想的行业。当然新入行者也要自己多留意,才能学习到更多。”郭淳浩又忠告,年轻人最好在30岁以前入行,主要原因是,这行的确很辛苦,工作经常要“通宵达旦”。

   证券分析师:年薪百万美元不容易

  由于香港地区的国际金融中心地位,因此集中了相当一批对中国内地乃至亚洲资本市场非常熟悉的专业人士。他们中的很多人都已经取得了显著的成就,其观点在市场中有相当大的影响力,如摩根士丹利经济学家谢国忠、瑞银证券的行业分析师等,他们的观点经常在媒体中发表,为业界所关注,有的时候更成为确定投资建议的出发点。

  活跃于香港资本市场的证券分析师之间的差异很大,就数量而言,市场占有率超过1.3%的大型券商和投资银行大致有20家左右,中型的公司大致有40家,小型机构数量极多,而且很多是以家族形式经营的。基本上,所有这些券商和投资银行大约可以被区分为“四大板块”:第1个板块是欧美证券公司和投资银行;第2个板块是日本券商和投资银行;第3个板块是来自东南亚的券商和投资银行;第4个板块是香港本地券商和投资银行机构。

  在欧美公司中,其专业研究人员如高级分析师的收入每年可以达到200万到300万美元的水平,除此之外,根据公司经营情况,年底还有20个月到40个月的花红可以拿。第二个板块,也就是来自日本的公司,专业人士的收入要比欧美公司低30%到40%,也就是每年约有150万美元的收入。东南亚以及香港本地公司的收入情况不好说,也不确定,这是由家族企业的性质所决定的。

  值得注意的是,投资银行并不十分在意培养新人,他们获取人才的途径主要是2个,一是让新手自己去争取机会,边干边学,像游泳一样,新手游得出来也就出来了,游不出来就淹死了;另一个做法就简单多了,就是挖人。由于现在竞争激烈,经济并不理想,新手的工资每月只有3万港币,而且标准很高,至少要出身于美国名牌院校。而香港本地券商机构给新手能够提供的收入更低,每月约有15000港币左右,不过标准也相应低一些,有的仅要求大学毕业即可。

  基本而言,在证券机构中从事研究工作的专业人士可以被划分为策略分析师、分析师和助手三大类别。策略分析师的主要工作是提供观点和项目框架,比如瑞士信贷第一波士顿策略分析师陶冬就表示,他的主要工作就是提供观点,所写的任何内容很少会超过一页纸。对比内地的情况,很多人对观点(View Point)看法有很大的偏差,这是策略分析师最重要的工作,因为观点往往就是出发点,就是确立的原则,观点一旦错了,最后的投资建议恐怕就错得更离谱了。

  分析师的主要工作是为了完成某一具体项目,为某一市场提供投资建议。由于他们并不能脱离宏观的束缚和策略分析师提供的观点,因此,他们的工作比较具体。在这个层次上,有的公司还有经济师的职位,这个职位的作用主要是提供国情分析和对经济形势的判断,以便更好地把握宏观状况。

  而助手的情况不是固定的,要视各家公司以及助手所跟随的分析师情况而定。通常助手至少对各种软件、图表工具以及数据非常熟悉,助手的日常工作并不轻松,因为他要时刻准备为分析师提供帮助,完成其所交代的任务。

  在国际资本市场中,几乎人人都是工作狂。陶冬在瑞士信贷第一波士顿的工作时间是从早上6点钟开始的,一直持续到晚上10点钟,此后,他往往还要安排一些自己的事务去做。也就是说,像陶冬这样的分析师,每天的工作时间长达14个小时到18个小时。摩根大通金融机构分析师邓体顺则透露,他的工作是从早上6点开始,因为那时,国际上有些市场就已经开盘了,他必须跟踪情况,而到晚上10点左右他就会结束工作。

  在感恩节的前夜,摩根士丹利经济学家谢国忠睁着疲倦的双眼,还在接待媒体的访问。他也是每天从早上6点开始工作的,直到深夜。谢国忠平静地说,这没什么可奇怪的,在资本市场上打滚的人,都是这样的工作强度,适应不了,就不要做。事实上,这样的人还有很多。在香港的资本市场的圈子中,专业人士日以继夜地勤奋工作,这种情况非常普遍,这就是他们的生活,他们的努力正是全球财富流动的原始动力。对于这样的工作强度,可能是我们很多人所不能想象的,我们希望获得财富,很多人也很羡慕分析师的荣誉和光环,但有多少人准备长年累月地这样工作?从事研究工作需要的是持之以恒的精神,如果你30岁还没有进入真正的分析师门槛,还在助手圈中晃悠,那么最好的建议就是换个工作,重新开始吧。因为即使从30岁开始,你还需要7-10年才能取得较为理想的成就,才能在业界拥有真正的市场地位。

  如何在竞争激烈的分析师中脱颖而出?拥有深厚理工专业背景的荷银证券全球半导体首席分析师王秀钧的心得体会是:给人的第一印象很重要。他拥有斯坦福大学工程经济系统博士学位,对生产流程很清楚,提问非常专业。王秀钧指出,掌握数亿美元资金的外国基金经理人都很有经验,提问题很尖锐,而且态度咄咄逼人,让人没有喘息的空间。对于有心想从事分析师工作的人,王秀钧建议,给人的第一印象和presentation(做专业演示)的能力一定要加强,因为这决定了基金经理听完你讲的第一分钟后,会不会有耐心继续听下去。王秀钧通常直接问他们想知道哪些,根据他们的需要马上回答,换句话说,除了准备够充分,sensitivity(敏感度)也很重要。“分析师这行是people business(了解人、喜欢与人相处的行业),人诚不诚恳很重要。”而美林证券台湾研究部副总裁曾省吾则是凭借下苦功了解产业趋势赢得了业内的声誉。曾省吾拥有电机与MBA双硕士的学历,曾在华宝证券任职,为了分析个人电脑、主板与手机等下游产业,他每天工作超过12小时,不仅拜访上市公司、撰写研究报告,半夜还要起来回答国外客户问题。在调查上市公司时,曾省吾的观点持平、中肯,对未来看法不会受一时景气高低的影响。此外,他喜欢发问,分析问题比较深入。从小跟随父母移民美国,毕业于哥伦比亚大学(硕士)与加州大学柏克利(学士)等名校,后花旗美邦研究部副总裁的林群杰却不自满,认真用功,使受访公司愿意主动提供他更多的消息,让其分析报告更能洞悉产业走势,看准股价未来方向。之前,林群杰曾在百富勤和瑞士信贷第一波士顿任职,经常每周工作70小时。他认为,证券分析师好比侦探,工作中需要独立思考、从各个方面观察事物,进而说服别人。

投资银行业:女性职业前景看好

  在具备欧美名校留学背景的华人中,女性在跨国金融与投资银行界拥有突出的职业发展机会。以金融市场较为开放的台湾地区为例,继2004年7月高盛任命余佩佩接替张果军出任台湾公司总裁后,已经有4名女士担任全球性投资银行的高层——除了余佩佩,其它3名女性主管包括摩根士丹利台湾CEO林水仙、瑞银集团台湾业务联席主管陈嫦芬及美林企业融资部台湾主管黄慧珠。拥有加拿大英属哥伦比亚大学硕士学位的余佩佩,在台湾外资投行界有超过10年的工作经验,在加入服务了5年的高盛之前,她曾在瑞银和花旗集团任职。3年前才与从事律师职业的丈夫结婚的余佩佩表示,工作的忙碌让她把婚礼交给先生及秘书打点,她只负责在约定时间现身,在拍完婚纱照后便立刻搭飞机公干,在婚礼前2天才回台湾。在发展时间不长的大陆市场,也已有孙玮、刘小俞、王学明、袁淑琴、李晶与赵竞等本地女性跻身于中高层职位,分别担任花旗环球金融亚洲公司中国业务主席、摩根大通中国区副主席、高盛(亚洲)董事总经理、德意志银行中国股票业务董事总经理、瑞银证券中国证券部董事总经理和摩根士丹利执行董事。

  然而在投资银行界,也有女性面对债券交易和芭蕾间的选择时,决定在功成名就之时激流勇退,寻求自在的生活方式。巴克莱证券公司债券发行部全球负责人艾比桂.霍夫曼(Abigail Hofman)就是典型的例子——在积累了极其丰厚的资产后,霍夫曼厌倦了“执行制作人”(managing producers)的角色,她选择离开伦敦金融城,从而有时间一周4次上芭蕾课改变形体,做任何自己想做的事情。 

2007/7/18

琐事

突然发现, 本人最近变懒了
 
July 9
阿头叫我10号,还有peter去深圳出差两天, 下午一放工就跑去sz了. 第一次出差的感觉, 好怪
 
July 10
天安数码城饭堂的饭菜也挺难吃,比珠海南软的好那么一点点
放工后去了joe那里, 他带我去他的office参观, 想去看看baidu在sz的office怎么样,但是他的阿头还没走,不是很方便, 只好作罢. 一起去yan家玩. yan的psp真的好好玩,还有ipod, 嗯嗯,努力赚钱. 晚上去姑姑家, 和才哥, 啊妹,弟弟去新洲吃宵夜, 很久没吃宵夜了, 感觉好好........
 
July 11
和公司的技术总监, 两个pm & sales meeting, 学到好多sales的知识. 晚上赶车回到珠海吃完饭, 10点半, 明早又要开工, oh, my god
 
July 12
今天开始ot, 一直ot到礼拜日, 2天4夜, 入职以来第一次这样ot, 因为下个礼拜一要开始测试, 要赶着给客户demo...
 
July 13
本人的学位证和毕业证因为gcd某些zf机构的fb而被非法扣押1年有多, 今日2证终于到手, 很嚣张的鄙视下那些fb份子,在学校吃过晚餐后回office ot, 居然在69号车上撞到大学时的外教gerard, 知识很丰富的一个很nice的人, 他现在在北理任教了. btw, 今日生日, 竟然在office ot, oh, my god....
2006/11/11

Untitled 4

礼拜六日,唐家旧市场

去旧市场的原因是因为唐家的旧市场繁华过新市场,早上9点(也许更早),鱼商摆出刚上岸的鱼,很新鲜的。卖茶叶的,一排过卖花草盆栽,有地滩卖附近农场的农产品,比如那州(珠海接近中山的一个地方)的桔子,特别甜,每次去欧都会买些。冬日太阳和煦,纵然没有英伦 notting hill 的 portobello market 那么热闹,这里的早晨却很有小镇味道。
----------------------------------

前几天回学校偶遇余老师,余老师一直很关心欧的健康,前些天留珠的同学们聚会,余老师还特地问留校的赖同学欧有没有去,好窝心啊。生活真美好...
-------------------------------------

刚离校不久,03的又开始实习了,莘莘学子很兴奋可以离开学校了,ta 们不知道不久后ta 们会像欧们一样觉得学生真幸福。06的刚开学不久,又有很多人开始茫茫然地开始属于 ta 们的生活。

loop, all is loop...
2006/10/7

中秋

十一放了7天假, 加一天年假, 8天.
29号放工后就过中山去了, 30号在中山玩了一天, 在中山步行来来会会自由行了3遍, 逛了很多铺头, 还有书店, 终于把步行街走通了, 包括孙文西路全段和孙文西路到百佳间的孙文中路. 我是从中山学院北门绕校外步行过去的, 佩服一下自己. 中山步行街很干净, 很美, 那些建筑很欧洲. 中山一中也在孙文中路. 孙文中路两边种满白兰树, 芬芳无比. 最后去了百佳. 就是假日广场那. 那里的铺头非常的干净, 整洁, 我喜欢那样的环境.
 
今天中秋, 跟两个老乡师妹一起吃饭, 其它的都回去了, 食街爆满, 去了青水, 青水很冷清, 奇怪. 就剩我们仨. 然后走路过3期再走回来, 没搭上末班车, 花了10rmb坐非法运输的车回来. 比较郁闷.
 
我在窗台上写blog, 窗外有人放烟花, 好美...
2006/9/10

静静的...

今天时有毛毛雨, 凉风拂面, 凉意阵阵来. 欲关灯望月, 月亮却躲了起来.
 
静静的霓虹灯, 静静的雨, 静静的夜空, 静静的音乐, 静静的月亮, 静静的郊区..
 
我翻了很多老歌出来, 都是很classic的:
"味道"
"爱的代价"
"第三天"
"大约在冬季"
"新不了情"
"为爱痴狂"
"月亮代表我的心"
"我等你"
"很爱很爱你"
"后来"
"成全"
"湾湾的月亮"
"让我取暖"
"七情六欲"
"人生何处不相逢"
"哭砂"
...
 
这些歌都是高三时听到最多的, 这些歌都很静, 这些歌都是属于一些人的曾经, 那个高三的生活...
 
"味道" 总在晚自习后从某个方向传来, 伴着校园白兰的幽香..
"哭砂" 也总在黄昏, 在教室里弥漫...
...
 
我想回到高三的生活, 回到那纯真的年代...
 
静静的霓虹灯, 静静的雨, 静静的夜空, 静静的音乐, 静静的月亮, 静静的郊区..
2006/7/26

Untitled 3

过几天就熬完见习期了, 要签约了, 感觉跟卖身似的.
其实的确是卖身, 卖大脑神经系统协调产生的物质, 卖青春, 卖时间...
今天下班前经理通知我们明天中午聚餐, 好像是祝贺我们见习完成之类.
 
我很努力的工作, 每次交完report或完成任务, 头都在会上或gaim上表扬和鼓励我.
签3方之前跟头和hr有一次交谈, 我说了句让我郁闷了很久的话: 我会确保我的工作得到肯定, 否则, 我会自己离开, 我没有那种浪费公司资源的勇气.
自那以后, 凡是头表扬我, 我都会想头是不是因为我那句话表扬我, 而不是因为我的工作成果.
 
头今天第一次叫我英文名, face-2-face,很温切.
 
介绍一下, 头很可爱, 微胖, 颇憨厚, 张姓, 软件工程师, 我们叫他张工.
 
这段时间睡眠严重不足, 不到6点就醒了, 许是太吵的缘故, 又瘦了一大圈.
...
 
今晚下起了雨, 微微凉意, 空气湿湿的, 好舒服...
2006/7/17

Untitled 2

我搬去唐家了, 搬出来了才觉得在学校真幸福, 许是还没习惯的缘故. 早上和下午的巴士很挤, 几乎都是去软件园的, 挤得万人空巷的巴士经过软件园站后像刚被洗劫了一样空.
 
那天早上在等巴士, 十字路口有两部车同时掉头, 结果撞上了, 离现场十米左右的巴士站等巴士上班的两mm, 其中一个说:"要不要过去看看." 另一个说:"要吧!" 太搞了她们俩, 好像很关她们事似的, 上班等巴士还跑过去看了很多分钟.后来一想起她们的对话就笑得我...
 
7号放工后我过深圳去了, 莹姐去张家界旅游了, 没见到, 见到文丽姐的儿子了, 好可爱...
 
暑假开始了, 学校的都走了, 很想回去走走...
 
前天去拱北莲花路走了一圈, 嗯, 路中间的酒吧好像生意很不错...
 
在不到10天的时间里我看完了郭老先生的"梦里花落知多少", 结局完全出乎我的意料, 太悲惨了.多好的一群人啊, 就这样结局, 郭老也太狠了.
 
顺便赞一下自己, 很多年没这么入迷的看书了. 为了着重表扬自己, 我决定这一行加重显示
2006/6/5

再次犯贱

今朝拍学士服照, 大家都回了来, 欧又见到ta们了, 感觉很亲切, 欧还是没勇气跟ta们说话.

来了很多亲友团, 欧没有通知家人, 通知了也不会来. brock上课, 没有通知, 其他的都开工, 不忍心让ta们请假...

其实欧觉得今天是个很大的日子, 就像结婚这么大件事了, 以后都不知道还有没有这样的日子了...所以有点后悔没有通知brock. 欧应该通知brock来的, 用他的canon单反帮欧拍多些照片...

拍完了和nevin拍了一张, 然后他又匆匆赶车回去了...

下午商学院拍, 偶遇到田, 她说下午刚回来, 拍完又要回去了, 明天要开工...

然后撞到markso, 她穿上学士服更漂亮了, 她说要合影, 拍了一张. markso, 工作慢慢来, 不要急...

美玉说早上拍了我, 欧咋不知道 -___-|||  嗯, 等着她给欧照片...

回来欧想ta们应该回去了, 感觉有点失落, 有点空洞...

虽然没怎么跟ta们说过话, 但平日感觉ta们离欧不远, 欧能感觉到ta们的存在...

然而ta们在这里的时候, 欧又没勇气跟ta们说话...

但是如果ta们回来了又走了, 欧就会感到失落, 感到空洞, 这个城市只剩下落魄的自己...

所以欧说自己很犯贱...犯贱...欧总是犯贱...

如果能得到授权, 迟点贴照片上来...

2006/5/29

毕业初夏夜

毕业时要做的二十件事

 
1.不管你曾经多么内向,你一定要在全班同学面前,认认真真地讲一次话, 或者唱一支歌, 即使你和开学时一样,再介绍一回你自己
  
2.拜访一回你最尊敬的老师,在毕业时,认真地记住一条关于人生的经验
  
3.一定要对你喜欢的女生(男生),很认真地告诉她(他),我爱过你
  
4.一定要和一个女生(男生),很认真地走一回“情人路“ 或者爬一次“情人坡“.
  
5.即使从不喝酒,你也一定要认真地醉一次
  
6.在夏夜的雨水里,大声地喊一次那个你想过多次人的名字. 不要怕你的声音过大,惊醒N多梦中人.
  
7.认真地在你不喜欢的食堂里,然后品尝一次食堂的免费汤, 它的气味你会在很多年后还能记得
  
8.在一个太阳还没有升起来的早晨,去操场跑一次步, 和那些生猛的大一新生们比较一下懒觉睡多了后体力上的差距.
  
9.在宿舍里不要有类似于写“某某到此一游“的行为.
  
10.下定决心,班集体的活动这次一定不会借故溜走___如果还有的话
  
11.很认真地穿一次西装(套装),看看自己和4年前,变化的地方在哪里?
  
12.花一个下午的时候,认真地整理一次自己的书箱, 哪些是可以留的,哪些是不要了的_在某本书里,是不是看见了一张陌生已久的纸条,或者是某人的名字.?
  
13.男生整理衣柜的时候,记得把你的球衣送给你的学弟, CD送给学妹,游戏碟记得自己带走.
  
14.在校园里,假如有山,请记得再爬一次, 假如有水,请记得再游一次.
  
15.记得留下每一个你觉得应该是朋友的联系方法,然后把你的新单位的电话给他们
  
16.终于要走了,再剪一次发,让自己崭崭新新地离开, 然后,崭崭新新地开始.
  
17.记得归还你的证件,陪伴了你4年的桌子, 椅子和凳子____我们不提倡你宁愿罚钱也要留下你的图书证,学生证,医疗证,食堂饭卡.....
  
18.论文答辩可能是你人生当中最后一次的课堂作业了, 请你认真地书写每一个字
  
19.和你一起睡了4年的床,一定要记得和它合一张影.
  
20.尽可能地送每一个你能送的同学,你要明白, 他们是你4年的同学,他们中的某人,也许是你最后一次能见到的人

某年某日见上文于mop, 当时毕业还是很遥远的事, 没什么感觉; 今晚又看到, 胡语乱言:

同学是一件很玄的事情
鬼使某时某刻聚此某地
神差几年以后各奔东西

我又周期性地来了离开高中时的愫情
涩涩的不舍让我觉得很莫名
韩麦尔先生收拾行李终要离去
小弗朗士明天改学德语
不再france不再alsace

外地实习的同学
这个学期偶尔回来一两次
见到ta们很亲切
却没勇气过去说句问候语

工作成了见面语
找房子成了common topic
还有协议 还有graduate
in the coming month
大家陆续离开远行

周遭的同学每晚都在喝着闷酒
谈起曾经的胜利曾经的欢聚
大家的音乐少了rock少了rap还少了r&b
带着的耳机弹着的吉他都是校园的民谣
都在回忆冬季的校园都在想着到底谁是睡在上铺的兄弟
谈谈现在未来还有同桌的你曾经的你
某某昨晚又醉在了pub里
回来吐了一路半醉半醒
惊起一片一片的鸳鸯还有情侣

校园的黄昏依旧很美丽
漂亮的女生永远是最美风景
走在校园里的她她她总是很有吸引力
面对女生我还是那么shy气
因此还是一个人独来独去

我还是很喜欢很晚到外面吹吹风看看月亮
弯弯的圆圆的弯弯的
吹着晚风晒着月光想着那些发生的该发生的情事往事

2006/5/28

正则表达式从入门到精通 (转载)

什么是正则表达式

  如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。

  请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件:

   data1.dat
   data2.dat
   datax.dat
   dataN.dat

  如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量。'data*.dat' 可以匹配下述所有文件名:

   data.dat
   data1.dat
   data2.dat
   data12.dat
   datax.dat
   dataXYZ.dat

  尽管这种搜索文件的方法肯定很有用,但也十分有限。? 和 * 通配符的有限能力可以使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。

  早期起源

  正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。

  1956 年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。

  随后,发现可以将这一工作应用于使用 Ken Thompson 的计算搜索算法的一些早期研究,Ken Thompson 是 Unix 的主要发明人。正则表达式的第一个实用应用程序就是 Unix 中的 qed 编辑器。

  如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。

  使用正则表达式

  在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。

  使用正则表达式,就可以:

  ·测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。

  ·替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。

  ·根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。

  例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。

  另一个说明正则表达式非常有用的示例是一种其字符串处理能力还不为人所知的语言。VBScript 是 Visual Basic 的一个子集,具有丰富的字符串处理功能。与 C 类似的 Jscript 则没有这一能力。正则表达式给 JScript 的字符串处理能力带来了明显改善。不过,可能还是在 VBScript 中使用正则表达式的效率更高,它允许在单个表达式中执行多个字符串操作。

  正则表达式语法

  一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

  这里有一些可能会遇到的正则表达式示例:

JScript VBScript 匹配
/^\[ \t]*$/ "^\[ \t]*$" 匹配一个空白行。
/\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。
/<(.*)>.*<\/\1>/ "<(.*)>.*<\/\1>" 匹配一个 HTML 标记。

  下表是元字符及其在正则表达式上下文中的行为的一个完整列表:

字符 描述
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} mn 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。
. 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。
(pattern) 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0$9 属性。要匹配圆括号字符,请使用 '\(' 或 '\)'。
(?:pattern) 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。
(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern) 负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
x|y 匹配 xy。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。
[xyz] 字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。
[^xyz] 负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。
[a-z] 字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。
\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
\B 匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
\cx 匹配由 x 指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
\w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
\W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
\xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,'\x41' 匹配 "A"。'\x041' 则等价于 '\x04' & "1"。正则表达式中可以使用 ASCII 编码。.
\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匹配两个连续的相同字符。
\n 标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
\nm 标识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 nm 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm
\nml 如果 n 为八进制数字 (0-3),且 ml 均为八进制数字 (0-7),则匹配八进制转义值 nml。
\un 匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, \u00A9 匹配版权符号 (©)。
 

  建立正则表达式

  构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。
可以通过在一对分隔符之间放入表达式模式的各种组件来构造一个正则表达式。对 JScript 而言,分隔符为一对正斜杠 (/) 字符。例如:

  /expression/
  对 VBScript 而言,则采用一对引号 ("") 来确定正则表达式的边界。例如:

  "expression"
  在上面所示的两个示例中,正则表达式模式 (expression) 均存储在RegExp 对象的Pattern 属性中。

  正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

  优先级顺序

  在构造正则表达式之后,就可以象数学表达式一样来求值,也就是说,可以从左至右并按照一个优先级顺序来求值。

  下表从最高优先级到最低优先级列出各种正则表达式操作符的优先级顺序:

操作符 描述
\ 转义符
(), (?:), (?=), [] 圆括号和方括号
*, +, ?, {n}, {n,}, {n,m} 限定符
^, $, \anymetacharacter 位置和顺序
| “或”操作


  普通字符

  普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。

  最简单的正则表达式是一个单独的普通字符,可以匹配所搜索字符串中的该字符本身。例如,单字符模式 'A' 可以匹配所搜索字符串中任何位置出现的字母 'A'。这里有一些单字符正则表达式模式的示例:

  /a/
  /7/
  /M/

  等价的 VBScript 单字符正则表达式为:

  "a"
  "7"
  "M"

  可以将多个单字符组合在一起得到一个较大的表达式。例如,下面的 JScript 正则表达式不是别的,就是通过组合单字符表达式 'a'、'7'以及 'M' 所创建出来的一个表达式。

  /a7M/
  等价的 VBScript 表达式为:

  "a7M"
  请注意这里没有连接操作符。所需要做的就是将一个字符放在了另一个字符后面。

  特殊字符

  有不少元字符在试图对其进行匹配时需要进行特殊的处理。要匹配这些特殊字符,必须首先将这些字符转义,也就是在前面使用一个反斜杠 (\)。下表给出了这些特殊字符及其含义:

特殊字符 说明
$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。
( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
. 匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。
[ 标记一个中括号表达式的开始。要匹配 [,请使用 \[。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
{ 标记限定符表达式的开始。要匹配 {,请使用 \{。
| 指明两项之间的一个选择。要匹配 |,请使用 \|。

  非打印字符

  有不少很有用的非打印字符,偶尔必须使用。下表显示了用来表示这些非打印字符的转义序列:

字符 含义
\cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。

  字符匹配

  句点 (.) 匹配一个字符串中任何单个的打印或非打印字符,除了换行符 (\n) 之外。下面的 JScript 正则表达式可以匹配 'aac'、'abc'、'acc'、'adc'如此等等,同样也可以匹配 'a1c'、'a2c'、a-c'以及 a#c':

  /a.c/

  等价的 VBScript 正则表达式为:

  "a.c"

  如果试图匹配一个包含文件名的字符串,其中句点 (.) 是输入字符串的一部分,则可以在正则表达式中的句点前面加上一个反斜杠 (\) 字符来实现这一要求。举例来说,下面的 JScript 正则表达式就能匹配 'filename.ext':

  /filename\.ext/

  对 VBScript 而言,等价的表达式如下所示:

  "filename\.ext"

  这些表达式仍然是相当有限的。它们只允许匹配任何单字符。很多情况下,对从列表中匹配特殊字符十分有用。例如,如果输入文字中包含用数字表示为Chapter 1, Chapter 2诸如此类的章节标题,你可能需要找到这些章节标题。

  括号表达式

  可以在一个方括号 ([ 和 ]) 中放入一个或多个单字符,来创建一个待匹配的列表。如果字符被放入括号中括起来,则该列表称为括号表达式。括号内和其他任何地方一样,普通字符代表其本身,也就是说,它们匹配输入文字中出现的一处自己。大多数特殊字符在位于括号表达式中时都将失去其含义。这里有一些例外:
  • ']' 字符如果不是第一项,则将结束一个列表。要在列表中匹配 ']' 字符,请将其放在第一项,紧跟在开始的 '[' 后面。

  • '\' 仍然作为转义符。要匹配 '\' 字符,请使用 '\\'。
  括号表达式中所包含的字符只匹配该括号表达式在正则表达式中所处位置的一个单字符。下面的 JScript 正则表达式可以匹配 'Chapter 1'、'Chapter 2'、'Chapter 3'、'Chapter 4' 以及 'Chapter 5':
  /Chapter [12345]/
  在 VBScript 中要匹配同样的章节标题,请使用下面的表达式:
  "Chapter [12345]"
  请注意单词 'Chapter' 及后面的空格与括号内的字符的位置关系是固定的。因此,括号表达式只用来指定满足紧跟在单词 'Chapter' 和一个空格之后的单字符位置的字符集合。这里是第九个字符位置。

  如果希望使用范围而不是字符本身来表示待匹配的字符,则可以使用连字符将该范围的开始和结束字符分开。每个字符的字符值将决定其在一个范围内的相对顺序。下面的 JScript 正则表达式包含了一个等价于上面所示的括号列表的范围表达式。
  /Chapter [1-5]/
  VBScript 中相同功能的表达式如下所示:
  "Chapter [1-5]"
  如果以这种方式指定范围,则开始和结束值都包括在该范围内。有一点特别需要注意的是,在 Unicode 排序中起始值一定要在结束值之前。

  如果想在括号表达式中包括连字符,则必须使用下述方法之一:
  • 使用反斜杠将其转义:
    [\-]
  • 将连字符放在括号列表的开始和结束位置。下面的表达式能匹配所有的小写字母和连字符:
    [-a-z]
    [a-z-]
  • 创建一个范围,其中开始字符的值小于连字符,而结束字符的值等于或大于连字符。下面两个正则表达式都满足这一要求:
    [!--]
    [!-~]
  同样,通过在列表开始处放置一个插入符(^),就可以查找所有不在列表或范围中的字符。如果该插入符出现在列表的其他位置,则匹配其本身,没有任何特殊含义。下面的 JScript 正则表达式匹配章节号大于 5 的章节标题:
  /Chapter [^12345]/
  对 VBScript 则使用:
  "Chapter [^12345]"
  在上面所示的示例中,表达式将匹配第九个位置处除1, 2, 3, 4, or 5 之外的任何数字字符。因此, 'Chapter 7' 为一个匹配,同样 'Chapter 9' 也是如此。

  上面的表达式可以使用连字符 (-) 表示。对 JScript 为:
  /Chapter [^1-5]/
  或者,对 VBScript 为:
  "Chapter [^1-5]"
  括号表达式的典型用法是指定对任何大写或小写字母字符或任何数字的匹配。下面的 JScript 表达式给出了这一匹配:
  /[A-Za-z0-9]/
  等价的 VBScript 表达式为:
  "[A-Za-z0-9]"
  限定符

  有时候不知道要匹配多少字符。为了能适应这种不确定性,正则表达式支持限定符的概念。这些限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。

  下表给出了各种限定符及其含义的说明:

字符 描述
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} mn 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。

  对一个很大的输入文档而言,章节数很轻易就超过九章,因此需要有一种方法来处理两位数或者三位数的章节号。限定符就提供了这个功能。下面的JScript 正则表达式可以匹配具有任何位数的章节标题:
  /Chapter [1-9][0-9]*/
  下面的 VBScript 正则表达式执行同样的匹配:
  "Chapter [1-9][0-9]*"
  请注意限定符出现在范围表达式之后。因此,它将应用于所包含的整个范围表达式,在本例中,只指定了从 0 到 9 的数字。

  这里没有使用 '+' 限定符,因为第二位或后续位置上并不一定需要一个数字。同样也没有使用 '?' 字符,因为这将把章节数限制为只有两位数字。在 'Chapter' 和空格字符之后至少要匹配一个数字。

  如果已知章节数限制只有99 章,则可以使用下面的 JScript 表达式来指定至少有一位数字,但不超过两个数字。
  /Chapter [0-9]{1,2}/
  对 VBScript 可以使用下述正则表达式:
  "Chapter [0-9]{1,2}"
  上述表达式的缺点是如果有一个章节号大于 99,它仍只会匹配前两位数字。另一个缺点是某些人可以创建一个 Chapter 0,而且仍能匹配。一个更好的用来匹配两位数的 JScript 表达式如下:
  /Chapter [1-9][0-9]?/
  或者
  /Chapter [1-9][0-9]{0,1}/
  对 VBScript 而言,下述表达式与上面等价:
  "Chapter [1-9][0-9]?"
  或者
  "Chapter [1-9][0-9]{0,1}"
  '*'、'+' 和 '?' 限定符都称之为贪婪的,也就是说,他们尽可能多地匹配文字。有时这根本就不是所希望发生的情况。有时则正好希望最小匹配。

  例如,你可能要搜索一个 HTML 文档来查找一处包含在 H1 标记中的章节标题。在文档中该文字可能具有如下形式:
  <H1>Chapter 1 – Introduction to Regular Expressions</H1>
  下面的表达式匹配从开始的小于号 (<) 到 H1 标记结束处的大于号之间的所有内容。
  /<.*>/
  VBScript 的正则表达式为:
  "<.*>"
  如果所要匹配的就是开始的 H1 标记,则下述非贪婪地表达式就只匹配。
  /<.*?>/
  或者
  "<.*?>"
  通过在 '*'、 '+' 或 '?' 限定符后放置 '?',该表达式就从贪婪匹配转为了非贪婪或最小匹配。
  定位符

  到现在为止,所看到的示例都只考虑查找任何地方出现的章节标题。出现的任何一个字符串 'Chapter' 后跟一个空格和一个数字可能是一个真正的章节标题,也可能是对其他章节的交叉引用。由于真正的章节标题总是出现在一行的开始,因此需要设计一个方法只查找标题而不查找交叉引用。

  定位符提供了这个功能。定位符可以将一个正则表达式固定在一行的开始或结束。也可以创建只在单词内或只在单词的开始或结尾处出现的正则表达式。下表包含了正则表达式及其含义的列表:

字符 描述
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。
\b 匹配一个单词边界,也就是指单词和空格间的位置。
\B 匹配非单词边界。

  不能对定位符使用限定符。因为在一个换行符或者单词边界的前面或后面不会有连续多个位置,因此诸如 '^*' 的表达式是不允许的。

  要匹配一行文字开始位置的文字,请在正则表达式的开始处使用 '^' 字符。不要把 '^' 的这个语法与其在括号表达式中的语法弄混。它们的语法根本不同。

  要匹配一行文字结束位置的文字,请在正则表达式的结束处使用 '$' 字符。

  要在查找章节标题时使用定位符,下面的 JScript 正则表达式将匹配位于一行的开始处最多有两个数字的章节标题:
  /^Chapter [1-9][0-9]{0,1}/
  VBScript 中相同功能的正则表达式如下:
  "^Chapter [1-9][0-9]{0,1}"
  一个真正的章节标题不仅出现在一行的开始,而且这一行中也仅有这一个内容,因此,它必然也位于一行的结束。下面的表达式确保所指定的匹配只匹配章节而不会匹配交叉引用。它是通过创建一个只匹配一行文字的开始和结束位置的正则表达式来实现的。
  /^Chapter [1-9][0-9]{0,1}$/
  对 VBScript 则使用:
  "^Chapter [1-9][0-9]{0,1}$"
  匹配单词边界有少许不同,但却给正则表达式增加了一个非常重要的功能。单词边界就是单词和空格之间的位置。非单词边界就是其他任何位置。下面的 JScript 表达式将匹配单词 'Chapter' 的前三个字符,因为它们出现在单词边界后:
  /\bCha/
  对 VBScript 为:
  "\bCha"
  这里 '\b' 操作符的位置很关键。如果它位于要匹配的字符串的开始,则将查找位于单词开头处的匹配;如果它位于改字符串的末尾,则查找位于单词结束处的匹配。例如,下面的表达式将匹配单词 'Chapter' 中的 'ter',因为它出现在单词边界之前:
  /ter\b/
  以及
  "ter\b"
  下面的表达式将匹配 'apt',因为它位于 'Chapter' 中间,但不会匹配 'aptitude' 中的'apt':
  /\Bapt/
  以及
  "\Bapt"
  这是因为在单词 'Chapter' 中 'apt' 出现在非单词边界位置,而在单词 'aptitude' 中位于单词边界位置。非单词边界操作符的位置不重要,因为匹配与一个单词的开头或结尾无关。

  选择与编组

  选择允许使用 '|' 字符来在两个或多个候选项中进行选择。通过扩展章节标题的正则表达式,可以将其扩充为不仅仅适用于章节标题的表达式。不过,这可没有想象的那么直接。在使用选择时,将匹配'|' 字符每边最可能的表达式。你可能认为下面的 JScript 和 VBScript 表达式将匹配位于一行的开始和结束位置且后跟一个或两个数字的 'Chapter' 或 'Section':

/^Chapter|Section [1-9][0-9]{0,1}$/
"^Chapter|Section [1-9][0-9]{0,1}$"

  不幸的是,真正的情况是上面所示的正则表达式要么匹配位于一行开始处的单词 'Chapter',要么匹配一行结束处的后跟任何数字的 'Section'。如果输入字符串为 'Chapter 22',上面的表达式将只匹配单词 'Chapter'。如果输入字符串为 'Section 22',则该表达式将匹配 'Section 22'。但这种结果不是我们此处的目的,因此必须有一种办法来使正则表达式对于所要做的更易于响应,而且确实也有这种方法。

  可以使用圆括号来限制选择的范围,也就是说明确该选择只适用于这两个单词 'Chapter' 和 'Section'。不过,圆括号同样也是难处理的,因为它们也用来创建子表达式,有些内容将在后面关于子表达式的部分介绍。通过采用上面所示的正则表达式并在适当位置添加圆括号,就可以使该正则表达式既可以匹配 'Chapter 1',也可以匹配 'Section 3'。

  下面的正则表达式使用圆括号将 'Chapter' 和 'Section' 组成一组,所以该表达式才能正确工作。对 JScript 为:

  /^(Chapter|Section) [1-9][0-9]{0,1}$/

  对 VBScript 为:

  "^(Chapter|Section) [1-9][0-9]{0,1}$"

  这些表达式工作正确,只是产生了一个有趣的副产品。在 'Chapter|Section' 两边放置圆括号建立了适当的编组,但也导致两个待匹配单词之一都被捕获供今后使用。由于在上面所示的表达式中只有一组圆括号,因此只能有一个捕获的 submatch。可以使用 VBScript 的Submatches 集合或者JScript 中RegExp 对象的 $1-$9 属性来引用这个子匹配。

  有时捕获一个子匹配是所希望的,有时则是不希望的。在说明所示的示例中,真正想做的就是使用圆括号对单词 'Chapter' 或 'Section' 之间的选择编组。并不希望在后面再引用该匹配。实际上,除非真的是需要捕获子匹配,否则请不要使用。由于不需要花时间和内存来存储那些子匹配,这种正则表达式的效率将更高。

  可以在正则表达式模式圆括号内部的前面使用 '?:'来防止存储该匹配供今后使用。对上面所示正则表达式的下述修改提供了免除子匹配存储的相同功能。对 JScript:

  /^(?:Chapter|Section) [1-9][0-9]{0,1}$/

  对 VBScript:

  "^(?:Chapter|Section) [1-9][0-9]{0,1}$"

  除了 '?:' 元字符,还有两个非捕获元字符用于称之为预查的匹配。一个为正向预查,用 ?= 表示, 在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串。一个为负向预查,用 '?!' 表示,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。

  例如,假定有一个包含引用有 Windows 3.1、Windows 95、Windows 98 以及 Windows NT 的文档。进一步假设需要更新该文档,方法是查找所有对 Windows 95、Windows 98 以及 Windows NT 的引用,并将这些引用更改为 Windows 2000。可以使用下面的 JScript 正则表达式,这是一个正向预查,来匹配 Windows 95、Windows 98 以及 Windows NT:

  /Windows(?=95 |98 |NT )/

  在 VBScript 要进行同样的匹配可以使用下述表达式:

  "Windows(?=95 |98 |NT )"

  找到一个匹配后,紧接匹配到的文字(而不包括预查中使用的字符)就开始对下一次匹配的搜索。例如,如果上面所示的表达式匹配到 'Windows 98',则将从 'Windows' 而不是 '98' 之后继续查找。

  向后引用

  正则表达式一个最重要的特性就是将匹配成功的模式的某部分进行存储供以后使用这一能力。请回想一下,对一个正则表达式模式或部分模式两边添加圆括号将导致这部分表达式存储到一个临时缓冲区中。可以使用非捕获元字符 '?:', '?=', or '?!' 来忽略对这部分正则表达式的保存。

  所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容存储。存储子匹配的缓冲区编号从 1 开始,连续编号直至最大 99 个子表达式。每个缓冲区都可以使用 '\n' 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。

  向后引用一个最简单,最有用的应用是提供了确定文字中连续出现两个相同单词的位置的能力。请看下面的句子:
  Is is the cost of of gasoline going up up?
  根据所写内容,上面的句子明显存在单词多次重复的问题。如果能有一种方法无需查找每个单词的重复现象就能修改该句子就好了。下面的 JScript 正则表达式使用一个子表达式就可以实现这一功能。
  /\b([a-z]+) \1\b/gi
  等价的 VBScript 表达式为:
  "\b([a-z]+) \1\b"
  在这个示例中,子表达式就是圆括号之间的每一项。所捕获的表达式包括一个或多个字母字符,即由'[a-z]+' 所指定的。该正则表达式的第二部分是对前面所捕获的子匹配的引用,也就是由附加表达式所匹配的第二次出现的单词。'\1'用来指定第一个子匹配。单词边界元字符确保只检测单独的单词。如果不这样,则诸如 "is issued" 或 "this is" 这样的短语都会被该表达式不正确地识别。

  在 JScript 表达式中,正则表达式后面的全局标志 ('g') 表示该表达式将用来在输入字符串中查找尽可能多的匹配。大小写敏感性由表达式结束处的大小写敏感性标记 ('i') 指定。多行标记指定可能出现在换行符的两端的潜在匹配。对 VBScript 而言,在表达式中不能设置各种标记,但必须使用 RegExp 对象的属性来显式设置。

  使用上面所示的正则表达式,下面的 JScript 代码可以使用子匹配信息,在一个文字字符串中将连续出现两次的相同单词替换为一个相同的单词:
var ss = "Is is the cost of of gasoline going up up?.\n";
var re = /\b([a-z]+) \1\b/gim;       //创建正则表达式样式。
var rv = ss.replace(re,"$1");   //用一个单词替代两个单词。
  最接近的等价 VBScript 代码如下:
Dim ss, re, rv
ss = "Is is the cost of of gasoline going up up?." & vbNewLine
Set re = New RegExp
re.Pattern = "\b([a-z]+) \1\b"
re.Global = True
re.IgnoreCase = True
re.MultiLine = True
rv = re.Replace(ss,"$1")
  请注意在 VBScript 代码中,全局、大小写敏感性以及多行标记都是使用 RegExp 对象的适当属性来设置的。

  在replace 方法中使用 $1 来引用所保存的第一个子匹配。如果有多个子匹配,则可以用 $2, $3 等继续引用。

  向后引用的另一个用途是将一个通用资源指示符 (URI) 分解为组件部分。假定希望将下述的URI 分解为协议 (ftp, http, etc),域名地址以及页面/路径:
http://msdn.microsoft.com:80/scripting/default.htm
  下面的正则表达式可以提供这个功能。对 JScript,为:
  /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/
  对 VBScript 为:
  "(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)"
  第一个附加子表达式是用来捕获该 web 地址的协议部分。该子表达式匹配位于一个冒号和两个正斜杠之前的任何单词。第二个附加子表达式捕获该地址的域名地址。该子表达式匹配不包括 '^'、 '/' 或 ':' 字符的任何字符序列。第三个附加子表达式捕获网站端口号码,如果指定了该端口号。该子表达式匹配后跟一个冒号的零或多个数字。最后,第四个附加子表达式捕获由该 web 地址指定的路径以及\或者页面信息。该子表达式匹配一个和多个除'#' 或空格之外的字符。

  将该正则表达式应用于上面所示的 URI 后,子匹配包含下述内容:
  • RegExp.$1 包含 "http"
  • RegExp.$2 包含 "msdn.microsoft.com"
  • RegExp.$3 包含 ":80"
  • RegExp.$4 包含 "/scripting/default.htm"