字符串中提取年月日,year、month、day,格式:year=2012,month=march-April、day=6-8
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串中提取年月日,year、month、day,格式:year=2012,month=march-April、day=6-8相关的知识,希望对你有一定的参考价值。
string date("Jan. 30 2012-Feb. 2 2012");
string date("Jan. 30-Feb. 2 2012");
string date("30 March-3 April 2003");
string date("6-8 May 2012");
string date("12 April 2012");
string date("Nov/Dec. 12 2012");
string date("April 12 2012");
string date("April 2012");
string date("2012");
先找有无 - 或 /, 有则分为2 个部分,无, 则是 1个部分。
然后 把两部分 的 字符串 抓出来。
字符串判断,字母开始 是 月,其它,4个数字是年,余下是 日。
用C++找 - 或 / :
size_t pos=0; pos = str.find("-");
if (pos==0) pos = str.find("/");
用C:
string str("Jan. 30 2012-Feb. 2 2012");
int main ()
int i;
int found= -1;
char s1[3][10],s2[3][10];
int n1=0,n2=0;
char cstr[40],c1[40],c2[40];
strcpy (cstr, str.c_str());
for (i=0;i < str.length(); i++) if ( cstr[i]=='-' || cstr[i]=='/')
found = i; cstr[i]=' ';
if (found > 0)
strcpy(c1,cstr); c1[found]='\0';
n1 = sscanf(c1,"%s %s %s",s1[0],s1[1],s1[2]);
strcpy(c2, &cstr[found+1]);
n2 = sscanf(c2,"%s %s %s",s2[0],s2[1],s2[2]);
else
n1 = sscanf(cstr,"%s %s %s",s1[0],s1[1],s1[2]);
前1 部分 的 字符串 在 s1[0],s1[1],s1[2] 中,年月日个数为 n1
后1 部分 的 字符串 在 s2[0],s2[1],s2[2] 中, 年月日个数为 n2
然后循环判断一下即可
取出的字符串是否正确,可以临时打印出来看:
for (i=0;i<n1;i++) cout << s1[i] << " ";
cout << endl;
if (found > 0) for (i=0;i<n2;i++) cout << s2[i] << " ";
cout << endl; 参考技术A 正则表达式匹配追问
呵呵,我已经匹配出来,但是总感觉不是很好。我是利用迭代器匹配的,想多仔细点
参考技术B - -追问吼吼,其实我已经写出啦,就是想多听听别人的意见。
js中获取当天的时间的年月日
var d=new Date()
var day=d.getDate()
var month=d.getMonth() + 1
var year=d.getFullYear()
document.write(day + "." + month + "." + year)
document.write("<br /><br />")
document.write(year + "/" + month + "/" + day)
以上是关于字符串中提取年月日,year、month、day,格式:year=2012,month=march-April、day=6-8的主要内容,如果未能解决你的问题,请参考以下文章
从sqlserver数据库中提取日期,并把年月日分别截取出来
pandas使用dt.year(month/day/hour/minute/second)函数抽取dataframe日期数据列对应的年月日时分秒信息