正则表达式 在给定范围内查找一个或多个 5 个连续数字的实例
本文关键字:连续 数字 实例 一个 范围内 查找 正则表达式 | 更新日期: 2023-09-27 18:31:44
我是正则表达式的新手,所以我需要一些帮助。 谁能帮我解析一个字符串并找到一个或多个范围从 40000 到 99999 的数字实例? 下面是一些示例字符串:
- 订单详情,Acme,#46405,53000,86232,4/17
- 3 instances
- PSA 订单详细信息:招聘实践 (46445);开始 4-16-12
- 1 instance
- PC 进站器 32134 直销 4/18/12
- 0 instances
你可以尝试这样的事情:
(?<!'d)[4-9]'d{4}(?!'d)
在正则表达式上看到它
编辑:这是一个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
。
注意:我建议您始终在字符串的开头和结尾使用匹配来测试正则表达式。