关于boost正则的问题

rotApple 2008-04-06 03:16:17

对于正则表达式, 我以前是写javascript脚本的, 对JS的正则很熟悉.

目前写boost的正则的时候, 不清楚它和js的正则区别到底在哪里, 所以有时候莫名的错误很多.

如:
"^(?:http|https|ftp)://.+/(?:.+\\.pkg)(?:\\?[^/\\]*)?$"

一直报错: std::runtime_error = {_Str="Unmatched [ or [^" }

我把^ $起始限定符删掉, 一定是这样错误, 不知道boost有没有g模式, i = ignorecase, g = global(和用了^...$一样)

请问大家知道哪里有boost正则和其它(如脚本JS)的正则的区别吗?
...全文
113 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rotApple 2008-04-07
  • 打赏
  • 举报
回复

不好意思, 大家, 是我的代码的问题, 正则是没有问题的.

问题在于我没仔细看regex_error的内容.

它报的错在:
Unmatched [ or [^
列:46

呵呵, 一直以为"^(?:http¦https ¦ftp)://.+/(?:.+\\.pkg)(?:\\?[^/\\]*)?$"
是第一个^有问题, 原来是后面的[^/\\]的问题. \\不就是\吗? 没想到一个\把]也注释了,所以就不匹配了.

改成[^\\/] 就是: "^(?:http¦https ¦ftp)://.+/(?:.+\\.pkg)(?:\\?[^\\/]*)?$" 就可以了. OK, 结帖.
rotApple 2008-04-07
  • 打赏
  • 举报
回复
我看了上面的网址, 说的内容除了[[:lower:]]内在的名称之外, 基本相同, 至少我写的这些是相同的, 所以不知道问题是不是出在我的代码上, 我的代码如下:

UINT const GetImageIndex(wchar_t *url)
{
// return value:
// 0 = url, 1 = ps, 2 = txt

UINT rtn = 0;
try
{
wregex exp1(_T("^(?:http|https|ftp)://.+/(?:.+\\.pkg)(?:\\?[^/\\]*)?$"),boost::regex::perl|boost::regex::icase);
wregex exp2(_T("^(?:http|https|ftp)://.+/(?:.+\\.txt)(?:\\?[^/\\]*)?$"),boost::regex::perl|boost::regex::icase);

if(regex_match(url,exp1))rtn = 1;
else if(regex_match(url,exp2))rtn = 2;
}
catch(regex_error &ex)
{
printf(ex.what());
}
return rtn;
}
请帮我看一下上面的代码有什么问题吗? 感觉好像是_T("")宽字符引起的??
  • 打赏
  • 举报
回复
这个你看一下这个正则的官方文档吧.好像说过一些.
masterz 2008-04-06
  • 打赏
  • 举报
回复
js和boost.regex的语法不太一样,仔细看看http://www.boost.org/doc/libs/1_35_0/libs/regex/doc/html/boost_regex/syntax.html
公司财务管理系统(源码+数据库+论文+答辩ppt一整套齐全)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 本系统分为员工、管理员两个用户角色。 员工功能: 1. 注册登录:填写员工账号、密码、姓名、部门职位等信息完成注册,账号密码登录系统。 2. 请假管理:填写请假标题、原因、时间、类型提交请假申请,查看本人请假记录与审核回复。 3. 考勤查看:查看个人考勤信息,查看出勤、请假、迟到、早退、缺勤统计数据。 4. 薪资查询:查看每月薪资详情,查看底薪、绩效、奖金、扣款以及实发工资等信息。 5. 薪资异议申请:对薪资有疑问时提交薪资异议申请,查看申请审核状态与管理员回复。 6. 个人中心:修改个人头像、手机号等资料,修改登录密码。 管理员功能: 1. 员工管理:查询、新增、编辑、删除员工账号,维护员工部门、职位等基础信息。 2. 请假信息管理:查看全部员工请假申请,搜索筛选请假记录,审核请假申请并填写回复。 3. 考勤信息管理:录入、编辑、删除员工考勤数据,按年月统计员工出勤相关信息。 4. 薪资信息管理:录入员工每月薪资数据,维护底薪、绩效、奖金、扣款等薪资记录。 5. 薪资异议处理:查看员工提交的薪资异议申请,审核申请内容,填写处理回复。 6. 系统管理:维护首页轮播图,发布系统公告,查看系统操作日志。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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