以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 提取年月日 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=157779) |
-- 作者:zsxx999ja -- 发布时间:2020/10/28 20:54:00 -- 提取年月日 我局经常发通知,内容如下:【区教育科技体育局】会议通知:2017年6月25日(星期日)下午3:00,在区公安分局一楼大会议室,区委书记文建平主持召开广安区脱贫攻坚工作研讨会议。参会人员:各农村公办中小学校长(各片区教育督导组负责通知辖区学校)。收到请回复,谢谢!今天尚来接受督查的学校,分管领导和资料经办人在家接受督查。,这还用问中如何用正则方法,取出当中的日期并转成yyyy-mm-dd的形式?写出代码示范一直 |
-- 作者:zsxx999ja -- 发布时间:2020/10/28 21:43:00 -- Dim str As String = "【区教育科技体育局】会议通知:2017年6月25日(星期日)下午3:00,在区公安分局一楼大会议室,区委书记文建平主持召开广安区脱贫攻坚工作研讨会议.参会人员:各农村公办中小学校长(各片区教育督导组负责通知辖区学校).收到请回复,谢谢!" Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "\\d{4}年\\d{1,2}月\\d{1,2}日") msgbox(mc(0).value)
|
-- 作者:zsxx999ja -- 发布时间:2020/10/29 14:30:00 -- 老师帮忙看一下,错在什么地方:从通知中提出日期至会议时间列,我是在datacolchanged事件中写的 If e.DataCol.Name = "SmsBody" Then \'如果更改的是身份证号码列
If e.DataRow.IsNull("SmsBody") Then \'身份证号码是否为空 e.DataRow("会议时间") = Nothing \'如果为空,则清除出生日期 Else Dim str As String = e.DataRow("SmsBody") Dim mc As object = System.Text.RegularExpressions.Regex.Matches(str, "\\d{4}年\\d{1,2}月\\d{1,2}日") Dim rq As String = mc(0).value rq = rq.Replace("年","-").replace("月","-").replace("日","-").Trim("-") Dim rq2 As Date e.DataRow("会议时间") = rq2 End If End If |
-- 作者:zsxx999ja -- 发布时间:2020/10/29 14:39:00 -- If e.DataCol.Name = "SmsBody" Then \'如果更改的是身份证号码列 If e.DataRow.IsNull("SmsBody") Then \'身份证号码是否为空 e.DataRow("会议时间") = Nothing \'如果为空,则清除出生日期 Else Dim str As String = e.DataRow("SmsBody") Dim mc As object = System.Text.RegularExpressions.Regex.Matches(str, "\\d{4}年\\d{1,2}月\\d{1,2}日") Dim rq As String = mc(0).value rq = rq.Replace("年","-").replace("月","-").replace("日","-").Trim("-") Dim rq2 As Date = cdate(rq) \'将rq转换为日期就正确了,单行测试没有问题,但整列重置就报错了, e.DataRow("会议时间") = rq2 End If End If
|
-- 作者:zsxx999ja -- 发布时间:2020/10/29 14:40:00 -- 错误提示如下: .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.5.29.8 错误所在事件:表,手机短信20201019214642, DataColChanged 详细错误信息: 调用的目标发生了异常。 指定的参数已超出有效值的范围。 参数名: i
|
-- 作者:有点蓝 -- 发布时间:2020/10/29 14:47:00 -- 说明其中某个日期值不是有效的日期格式 |
-- 作者:zsxx999ja -- 发布时间:2020/10/29 14:54:00 -- 如何改? |
-- 作者:有点蓝 -- 发布时间:2020/10/29 15:08:00 -- http://www.foxtable.com/webhelp/topics/0324.htm |
-- 作者:zsxx999ja -- 发布时间:2020/10/29 16:06:00 -- If e.DataCol.Name = "SmsBody" Then \'如果更改的是身份证号码列 If e.DataRow.IsNull("SmsBody") Then \'身份证号码是否为空 e.DataRow("会议时间") = Nothing \'如果为空,则清除出生日期 Else Dim str As String = e.DataRow("SmsBody") Dim part As String = "\\d{4}年\\d{1,2}月\\d{1,2}日" Dim mc As object = System.Text.RegularExpressions.Regex.Matches(str, "\\d{4}年\\d{1,2}月\\d{1,2}日") If mc.IsMatch(part,str) = True Then 此处加个判断看匹配成功不,用法有错,如下楼请修改 Dim rq As String = mc(0).value rq = rq.Replace("年","-").replace("月","-").replace("日","-").Trim("-") Dim rq2 As Date If Date.TryParse(rq, rq2) Then \'如果转换成功 黄色部分已照帮助修改,但仍报错,错不在此处。 e.DataRow("会议时间") = rq2 \' Output.Show(d) \'输出转换结果 Else e.DataRow("会议时间") = Nothing \'Output.Show("无效日期格式") \'给出错误提示 End If End If End If End If
|
-- 作者:zsxx999ja -- 发布时间:2020/10/29 16:06:00 -- .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.5.29.8 错误所在事件:表,手机短信20201019214642, DataColChanged 详细错误信息: 调用的目标发生了异常。 未找到类型“MatchCollection”的公共成员“IsMatch”。
|