[英]RegEx To Find One or More Instances of 5 Consecutive Digits Within A Given Range
我是RegEx的新手,因此需要一些帮助。 谁能帮我解析一个字符串并找到一个或多个数字实例,这些实例的范围从40000到99999 ? 以下是一些示例字符串:
- 3 instances
- 1 instance
- 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.