匹配错误

rising 2004-09-16 05:02:59
程序如下:
regex H1("\\sH1(\\d{15})(\\d{4}-\\d\\d-\\d\\d)(\\d{4})\\s*((\\d+,)*\\d*\\.+\\d*)\\s*([^\\s]*)\\s*(\\d{8})\\s*");
if(regex_match(" H15269526990066162004-07-310407 4.86 市财政地税局 00000001 ",what,H1))
{
AnsiString card((what[1].str()).c_str());
AnsiString txdz((what[6].str()).c_str());
AnsiString dzrq((what[2].str()).c_str());
AnsiString dzzq((what[3].str()).c_str());
AnsiString p_balance((what[4].str()).c_str());
}
运行结果
card="526952699006616"
txdz="市财政地税局"
dzrq=""
dzzq="市财"
p_balance=4.86


为什么 dzrq是空的而dzzq匹配了 “市财”
我的本意是dzrq应该为2004-07-31
dzzq="0407"

...全文
159 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shakaCY 2004-09-19
  • 打赏
  • 举报
回复
搬个凳子!haha
cpunion 2004-09-18
  • 打赏
  • 举报
回复
我用Visual C++ 2005 Express Edition Beta + boost1.31测试了,没有问题,输出跟我楼上的楼上的楼上那位一样。
kobefly 2004-09-17
  • 打赏
  • 举报
回复
不是很明白,关注
daylove 2004-09-17
  • 打赏
  • 举报
回复
顶,学习一下,
柯本 2004-09-16
  • 打赏
  • 举报
回复
我用BCB6+pack4,boost 1.31.0,结果是对的:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//
regex H1("\\sH1(\\d{15})(\\d{4}-\\d\\d-\\d\\d)(\\d{4})\\s*((\\d+,)*\\d*\\.+\\d*)\\s*([^\\s]*)\\s*(\\d{8})\\s*");
cmatch what;
if(regex_match(" H15269526990066162004-07-310407 4.86 市财政地税局 00000001 ",what,H1))
{
AnsiString card((what[1].str()).c_str());
AnsiString txdz((what[6].str()).c_str());
AnsiString dzrq((what[2].str()).c_str());
AnsiString dzzq((what[3].str()).c_str());
AnsiString p_balance((what[4].str()).c_str());
Edit1->Text=card;
Edit2->Text=txdz;
Edit3->Text=dzrq;
Edit4->Text=dzzq;
Edit5->Text=p_balance;

}

Edit1:526952699006616
Edit2:市财政地税局
Edit3:2004-07-31
Edit4:0407
Edit5:4.86
-------------------------------
可能是你的boost库本身的问题
Programmerjacinth 2004-09-16
  • 打赏
  • 举报
回复
学习,顶!!
rising 2004-09-16
  • 打赏
  • 举报
回复
up
rising 2004-09-16
  • 打赏
  • 举报
回复
谁知道啊
cpunion 2004-09-16
  • 打赏
  • 举报
回复
一直没有测试过C++的正则表达式库匹配中文的情况,因为我在linux环境下编程,很少打中文。
rising 2004-09-16
  • 打赏
  • 举报
回复
boost啊

正则表达式有问题吗?
cpunion 2004-09-16
  • 打赏
  • 举报
回复
你用的什么库?我用的测试软件,匹配如下:

文本长度: 148
匹配总数: 1
第 1 个匹配
FirstIndex : 0
length :148
value :
H15269526990066162004-07-310407 4.86 市财政地税局 00000001
第 1 个匹配的第 1 个子匹配
526952699006616
第 1 个匹配的第 2 个子匹配
2004-07-31
第 1 个匹配的第 3 个子匹配
0407
第 1 个匹配的第 4 个子匹配
4.86
第 1 个匹配的第 5 个子匹配
第 1 个匹配的第 6 个子匹配
市财政地税局
第 1 个匹配的第 7 个子匹配
00000001

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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