谢天谢地,好久没有正常的用blog了。无论哪里都是能看不能改,痛苦死我。

先写个技术文,关于Boost库的。

首先,你得装Vs2003.net。VC++6的编译器在支持列表里面一片血红,用那个不如用Linux跑GCC。如果有MSVC8(不要脑子转不过来,就是Vs2005.net),那就比较完美了。基本和Linux下的GCC4.1平分秋色。下面是按照Vs2003.net+windows的例子来讲的。

然后,下载一个boost的库源代码,解压安装,没有一点困难。好的很。

接下来,请在PATH里面确认添加C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE;或者等效路径,关键是要能将cl.exe,link.exe,vcvars32.bat,mspdb71.dll纳入搜索路径。然后切换到boost的目录boost_1_33_1libs\regex\build,运行vcvars32.bat,再运行nmake -f vc71.mak,或者等效的指令(其实就是71还是70 80)。再运行nmake -f vc71.mak install,向VC的lib目录里面添加库。至此boost库的regex组件库算是编译好了能用,如果你不用正则表达式,抱歉,上面的话在耍你。

然后是用法,倒不难。

cmatch what;
regex reg("^abc$);

if(regex_search(str.c_str(), what, reg)){
	....
}

what里面会保存从正则表达式里面匹配出来的东西。

利用这个库可以很好的做字符串拆分,验证的操作,弥补了C++没有正则表达式的缺憾。

我写了一个类,可以从流里面获得每行,然后做匹配,然后派发到相应函数里面去。有需要的可以联系我。