您现在的位置:首页 > 教案模板 > 正文

vc2005下用boost regex链接错误,不能解析boost::re(6)

2019-09-21 23:02 网络整理 教案网

boost类库中Regex编译的问题。">关于boost类库中Regex编译的问题。

我下载了<em>boost</em>类库的1.33版本。编译<em>regex</em>的时候编译不通。不知道是需要什么设置还是有什么其它的编译方法。rnrn提示的是少了文件。但是我下载的版本应该是完整的啊。rnrn请问谁编译过这个库请指点一下。谢谢。

boost单独提取regex及自动链接介绍">boost单独提取regex及自动链接介绍

项目中需要用到正则表达式校验复杂字符串有效性。于是想到了使用<em>boost</em>中的<em>regex</em>。 后来在具体实施时发现<em>boost</em>文件过于庞大,<em>不能</em>仅仅因为要使用<em>regex</em>就需要要将所有文件包含进来,更何况还要上传svn(此处有争议,后面介绍)。 尝试手动提取<em>regex</em>依赖文件,发现工作量太大于是放弃。由于使用vs2008开发环境且安装了sp1补丁,想到了tr1(C++ technical report 1

boost/regex正则表达式安装、使用方法">初学者请教boost/regex正则表达式安装、使用方法

1、设置环境变量MSVCDIR=C:\Program Files\Microsoft Visual Studio\VC98rn2、在\<em>boost</em>_1_34_1\libs\<em>regex</em>\build目录下输入以下命令编译、安装rn nmake -fvc6.makrn nmake -fvc6.mak installrn3、在VC6.0 Tools->option->Directory->Include files下添加路径 E:\<em>boost</em>_1_34_1rn4、用VC6.0创建一个测试例子:rn #include rn ...rn <em>boost</em>::<em>regex</em> expression("^\d5(-\d4)0,1$");//匹配以5个数字开头,紧接-,后面4个数字或者无rn <em>boost</em>::cmatch what;rn const char *pszMatch = "98007-4235";rn if ( <em>boost</em>::<em>regex</em>_match( pszMatch, what,expression ) )rn rn AfxMessageBox("ok");rn rn elsern rn AfxMessageBox("failed");rn rnrn但运行程序后显示failed,即<em>boost</em>::<em>regex</em>_match( pszMatch, what,expression )返回FALSE。rn不知道错在哪里,匹配其他简单的正则式也失败。rn

boost::Regex正则表达式怎么匹配中文啊?">boost::Regex正则表达式怎么匹配中文啊?

boost wstring string_boost string find_string find 函数

网上查的都说是[\u4e00-\u9fa5] ,但是用起来根本不灵,到底是为何呢?

boost regex 正则表达式效率慢问题">boost regex 正则表达式效率慢问题

我有这样一个正则表达式,希望匹配一段连接中的连接和连接文字,如:rncsdnrn匹配和csdnrnrn正则表达式如下:rn<em>regex</em> reg( "([^<

boost::regex库+ICU的编译和使用">关于boost::regex库+ICU的编译和使用

因为要分析utf8字串,所以要用ICU。并且要用到 多线程rn环境 :VC2008(9.0)rnicu 4.0 在 i:/icu 目录rn<em>boost</em> 1.38rnrn我用的是vc2008,先用ICU的 source\allinone\allinone.sln 在vc2008里编译rnrn然后照网上说,拷贝多一份 icudt.lib 改为 icudata.lib icuin.lib 改为 icui18n.librn因为bjam 要用到不同的名称。旧名称也还在,没删,因为nmake要用到rnrn然后打开 vc9 的命令行控制台,用bjam在 <em>boost</em>_1_39_0\libs\<em>regex</em>\build 里使用rnrnbjam -s HAVE_ICU=1 -s ICU_PATH=i:/icu threading=multi release link=shared runtime-link=sharedrnrn最后就在 <em>boost</em>_1_39_0\bin.v2\libs\<em>regex</em>\build\ 下找到lib 和 dllrnrn最后,在vc2008里建立工程,设置相应目录rnrn[code=C/C++]rn#define BOOST_HAS_ICUrn#include rn#include rn#include rnrn//网上随便找的例子rnstd::string get_filename(const std::string& path)rnrn <em>boost</em>::u32<em>regex</em> r = <em>boost</em>::make_u32<em>regex</em>("(?:\\A|.*\\\\)([^\\\\]+)");rn <em>boost</em>::smatch what;rn if(<em>boost</em>::u32<em>regex</em>_match(path, what, r))rn rn // extract $1 as a CString:rn return what.str(1);rn rn elsern rn throw std::runtime_error("Invalid pathname");rn rnrnrnint _tmain(int argc, _TCHAR* argv[])rnrn std::string str = get_filename("a123.bmp");rn return 0;rnrn[/code]rnrn但是连接错误:rnrnLinking...rnTest.obj : error LNK2001: unresolved external symbol _u_tolower_4_0rnrn然后我加入:rnrn[code=C/C++]rn#define BOOST_HAS_ICUrn#include rn#include rn#include rn#pragma comment(lib, "icuuc.lib")rn#pragma comment(lib, "icuin.lib")rn#pragma comment(lib, "icudt.lib")rnrn//。

。。rn[/code]rnrn编译过了,但是运行抛异常,挂了:这行:rnrn[code=C/C++]rn<em>boost</em>::u32<em>regex</em> r = <em>boost</em>::make_u32<em>regex</em>("(?:\\A|.*\\\\)([^\\\\]+)");rn[/code]rnrnrn网上没人讨论过这情况。。。。。咋解决?

boost regex的内存泄漏问题。">如何修复boost regex的内存泄漏问题。

最近运行一个程序,运行结束总是报内存泄漏,如下:rnDetected memory leaks!rnDumping objects ->rn191 normal block at 0x00B7B7F0, 32 bytes long。rn Data: < > E0 B0 B7 00 E0 B0 B7 00 E0 B0 B7 00 04 08 00 00 rn190 normal block at 0x00B7B7A0, 20 bytes long。rn Data: < @ P > 90 B0 B7 00 90 B0 B7 00 40 B1 B7 00 50 B7 B7 00 rn189 normal block at 0x00B7B750, 16 bytes long。rn Data: 5C 05 53 00 01 00 00 00 01 00 00 00 40 B1 B7 00 rn188 normal block at 0x00B7B6C0, 80 bytes long。rn Data: < > C0 B6 B7 00 C0 B6 B7 00 C0 B6 B7 00 CD CD CD CD rn187 normal block at 0x00B7B650, 52 bytes long。

rn Data: 50 B6 B7 00 50 B6 B7 00 50 B6 B7 00 CD CD CD CD rn186 normal block at 0x00B7B5E0, 52 bytes long。rn Data: < > E0 B5 B7 00 E0 B5 B7 00 E0 B5 B7 00 CD CD CD CD rn185 normal block at 0x00B7B140, 1120 bytes long。rn Data: < > 04 08 00 00 00 00 00 00 00 00 00 00 00 00 1A 00 rn184 normal block at 0x00B7B0E0, 32 bytes long。rn Data: < > F0 B7 B7 00 F0 B7 B7 00 F0 B7 B7 00 CD CD CD CD rn183 normal block at 0x00B7B090, 20 bytes long。rn Data: < > A0 B7 B7 00 A0 B7 B7 00 CD CD CD CD CD CD CD CD rnObject dump complete。rnrn用函数_CrtSetBreakAlloc定位查找是<em>boost</em>::<em>regex</em> reg("

boost regex 中如何获得开始位置">boost regex 中如何获得开始位置

如题,通过正则表达式怎么怎么获得找到字符串的开始位置??

boost::regex,零宽度断言问题">boost::regex,零宽度断言问题

[code=C/C++]int main()rnrn <em>boost</em>::<em>regex</em> reg("(?=a)bcd");rn string s="abcd";rn cout << boolalpha << <em>boost</em>::<em>regex</em>_match(s, reg);rn[/code]rn输出了false,是我的表达式有问题还是有开关没开?rn本人初自学正则表达式,求讲解rn另外<em>boost</em>版本1_46_1,编译器VS2010 SP1