boost库正则表达式,运行报错

jamseyang 2012-05-03 03:36:40
以下代码编译通过,运行出现异常


std::string str = "<JX-NC-RZL-CE-2.CDMA>";
boost::regex expression("<[a-zA-Z0-9-.]+>", boost::regex::icase);
boost::smatch what;
if ( boost::regex_search(str, what, expression))
{
std::cout << what.size() << std::endl;
for (size_t i = 0; i < what.size(); ++i)
{
if (what[i].matched)
std::cout << what[i] << std::endl;
}

}

使用UE也同样报错,使用RegexTester没有问题,应该和正则表达式引擎有关,请问在boost的正则中代码应该怎么写,谢谢

UE报错截图:
...全文
96 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jamseyang 2012-05-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

引用 8 楼 的回复:

引用 7 楼 的回复:

-.引起的问题
只要将[]中的-放到最后 "<[a-zA-Z0-9.-]+>"就没问题了。

谢谢,我试试了下可以了。 可以大概帮我解释下吗,谢谢!

[]中的-有2种意思 a-z -符号
很明显解释成 9-. 这种了,于是就报错了。
[/Quote]
谢谢,受教了。因为“.”的Asscii比“9”小,所以报错
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

引用 7 楼 的回复:

-.引起的问题
只要将[]中的-放到最后 "<[a-zA-Z0-9.-]+>"就没问题了。

谢谢,我试试了下可以了。 可以大概帮我解释下吗,谢谢!
[/Quote]
[]中的-有2种意思 a-z -符号
很明显解释成 9-. 这种了,于是就报错了。
jamseyang 2012-05-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

-.引起的问题
只要将[]中的-放到最后 "<[a-zA-Z0-9.-]+>"就没问题了。
[/Quote]
谢谢,我试试了下可以了。 可以大概帮我解释下吗,谢谢!
  • 打赏
  • 举报
回复
-.引起的问题
只要将[]中的-放到最后 "<[a-zA-Z0-9.-]+>"就没问题了。
jamseyang 2012-05-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

<>换成()

呃看错了
[]中间的.需要转义
boost::regex expression("<[a-zA-Z0-9-\\.]+>", boost::regex::icase);
[/Quote]
刚刚试过了,不行,运行抛异常
jamseyang 2012-05-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

把正则表达式中的“.”发到最前面就可以了,不明白为什么
C/C++ code
//这样就OK了
boost::regex expression("<[.a-zA-Z0-9-]+>", boost::regex::icase);
[/Quote]
jamseyang 2012-05-03
  • 打赏
  • 举报
回复
把正则表达式中的“.”发到最前面就可以了,不明白为什么

boost::regex expression("<[a-zA-Z0-9-.]+>", boost::regex::icase);
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

<>换成()
[/Quote]
呃看错了
[]中间的.需要转义
boost::regex expression("<[a-zA-Z0-9-\\.]+>", boost::regex::icase);
  • 打赏
  • 举报
回复
<>换成()
赵4老师 2012-05-03
  • 打赏
  • 举报
回复
正则表达式速查 正则表达式举例 正则表达式学习 (4页A4纸)
http://download.csdn.net/detail/zhao4zhong1/1808549

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧