如何在C#中从文本提取指定格式的MODEID?
SSIS脚本任务提取MODEID的代码修复
原代码存在的问题
- 正则匹配逻辑错误:使用
^和$限定整个字符串必须是MODE开头加数字,但目标MODEID只是Audit字段长文本中的一段,导致匹配失败。 - 位数匹配错误:需求是MODE后接30位数字,原正则写的
[0-9]{34},位数不匹配。 - 语法错误:else分支中
'MISSINGMODEID"混用单双引号,会引发编译异常。
修复后的代码
Regex regex = new Regex(@"MODE\d{30}"); Match match = regex.Match(Row.Audit); if (match.Success) { Row.MODEID = match.Value; } else { Row.MODEID = "MISSINGMODEID"; }
说明
- 去掉
^和$,让正则在长文本中查找符合格式的子串。 - 用
\d替代[0-9]简化数字匹配,同时把位数修正为{30}。 - 统一使用双引号包裹字符串,修正语法错误。
内容的提问来源于stack exchange,提问作者Madhu
相关产品推荐
相关产品推荐

