有关正则表达式的问题:将中文字符串中的日期提取出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关正则表达式的问题:将中文字符串中的日期提取出来相关的知识,希望对你有一定的参考价值。

程序如下:
int _tmain(int argc, _TCHAR* argv[])

//测试语料
const char *szStr = "小明于2004年9月10日高考完事";

if(1)

const char *szReg = "(\\d+年\\d+月\\d+日)";
regex reg( szReg );

//提取子串
cmatch mat;
bool r=regex_search( szStr, mat, reg);
assert(r);

if(r) //如果匹配成功

cout<<mat<<endl;




return 0;

输出结果:(我想要的是“2004年9月10日“)

我想请问:
程序中的cmatch mat;是什么类型变量?mat在regex_search( szStr, mat, reg)中又有着怎样的作用?如果mat内容是字符串中符合正则表达式规则的子串,为什么结果有不对呢?
我需要用c++来编程,所以可能需要考虑字符编码的问题,我想问的是vs编程中怎么处理中文字符串的问题

为啥我可以


不加L的话,保存的是本地编码:简体中文系统上保存的就是GBK,繁体中文上保存的就是Big5,日语系统上保存的就是ShiftJIS。

加L的话,字符串类型变成wchar_t*,保存的是UTF16(还是UCS2我不知道……前者似乎是支持可变长的,不过我没见过它保存成可变长的过),所有系统上都是一样的编码。

参考技术A

追问

你们用的什么环境啊,我用的是VS2008

追答

我用的是正则表达式测试工具,其环境完全兼容vs.net

参考技术B 你QQ多少啊

以上是关于有关正则表达式的问题:将中文字符串中的日期提取出来的主要内容,如果未能解决你的问题,请参考以下文章

通过匹配字符串中的日期格式使用Java提取日期

js使用正则表达式将字符串里面的img标签src的值提取出来

python正则表达式匹配中文日期时间

python正则表达式匹配中文日期时间

有关正则表达式的学习

ultraedit/UE/Ultra Studio里面, 如何将正则表达式匹配到的所有字符串结果(不是所在行)提取出来?