You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Regex.Match语法识别由双空格分隔两个数字的文本行

正确正则匹配规则

你原有正则的问题在于没有做行边界限制,也没有固定空白字符的数量,才会误匹配嵌入在其他字符中的数字。
符合需求的正则模式为:
^ {2}\d{1,5} {2}(\d{4}|\d{6})\s*$

规则说明

  • ^ 匹配行首,确保从行开头校验格式
  • {2} 匹配固定2个空格,保证第一个数字从第三个字符位开始
  • \d{1,5} 匹配1-5位的第一个数字
  • {2} 匹配两个数字之间固定的2个空格
  • (\d{4}|\d{6}) 匹配仅4位或6位的第二个数字,你可以通过m.Groups[1].Value直接取到该数字
  • \s*$ 允许行尾存在多余空白字符后结束,如果你要求第二个数字后不能有任何内容,可去掉\s*

调整后代码

Match m = Regex.Match(line, @"^ {2}\d{1,5} {2}(\d{4}|\d{6})\s*$"); 
if (m.Success)
{
    // code to save it as a line element
}

若你提供的匹配样例行首实际没有两个空格,是需求描述笔误,将正则开头的 {2}删除即可,调整后模式为 ^\d{1,5} {2}(\d{4}|\d{6})\s*$

内容的提问来源于stack exchange,提问作者Mike Fowler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 14:48:03