繁体   English   中英

正则表达式查找给定范围内5个连续数字的一个或多个实例

[英]RegEx To Find One or More Instances of 5 Consecutive Digits Within A Given Range

我是RegEx的新手,因此需要一些帮助。 谁能帮我解析一个字符串并找到一个或多个数字实例,这些实例的范围从4000099999 以下是一些示例字符串:

  • 订单详细信息Acme#46405,53000,86232,4/17-3 - 3 instances
  • PSA订单详细信息:雇用惯例(46445); 开始4-16-12-1 - 1 instance
  • PC Pitstop 32134 Direct for 4/18/12-0 - 0 instances

您可以尝试这样的事情:

(?<!\d)[4-9]\d{4}(?!\d)

regexr上看到它

编辑:这是一个c#代码段进行测试:

// could be whatever
var str = "50000 alpha 43 84100";
var regex = new Regex(@"(?<!\d)[4-9]\d{4}(?!\d)");
foreach (Match match in regex.Matches(str))
    Console.WriteLine(match.Value);

输出:

50000
84100

您应该使用正则表达式

(?<!\d)([4-9]\d{4})(?!\d)

未经测试的代码:

using System;
using System.Collections;
using System.Text.RegularExpressions;

class Program
{
  static void Main()
  {
    string input = "50000 Order Acme, #46405,53000,86232, for 4/17 60000";
    Regex t = new Regex(@"(?<!\d)([4-9]\d{4})(?!\d)", RegexOptions.Singleline) 
    MatchCollection theMatches = t.Matches(input) 
    for (int counter = 0; counter < theMatches.Count; counter++)
    {
      Console.WriteLine(theMatches[counter].Value); 
    }
  }
}

对于多行输入,请使用RegexOptions.Multiline而不是RegexOptions.Singleline


注意: 我建议您始终在字符串的开头和结尾测试匹配的正则表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM