c# - 数字范围和字符的正则表达式

标签 c# regex

我需要一个正则表达式来匹配数字(大于 5 但小于 500)和数字后面的文本字符串的组合。

例如,以下匹配将返回 true:6 个项目或 450 个项目或 300 个项目红色(“项目”一词后可以有其他字符)

而以下字符串将返回 false:4 个项目或 501 个项目或 40 个红色项目

我尝试了以下正则表达式,但它不起作用:

string s = "Stock: 45 Items";          
Regex reg = new Regex("5|[1-4][0-9][0-9].Items");
MessageBox.Show(reg.IsMatch(s).ToString());

感谢您的帮助。

最佳答案

这个正则表达式应该用于检查数字是否在 5 到 500 的范围内:

"[6-9]|[1-9][0-9]|[1-4][0-9][0-9]|500"

编辑:下面的示例使用了更复杂的正则表达式,它也排除了大于 1000 的数字,并排除了数字后除“Items” 以外的字符串:

string s = "Stock: 4551 Items";
string s2 = "Stock: 451 Items";
string s3 = "Stock: 451 Red Items";
Regex reg = new Regex(@"[^0-9]([6-9]|[1-9][0-9]|[1-4][0-9][0-9]|500)[^0-9]Items");

Console.WriteLine(reg.IsMatch(s).ToString()); // false
Console.WriteLine(reg.IsMatch(s2).ToString()); // true
Console.WriteLine(reg.IsMatch(s3).ToString()); // false

关于c# - 数字范围和字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4461637/

相关文章:

c# - 使用 C# 在 Jira-Rest-Api 中搜索过滤器

c# - 是否有 if(struct == null) 的替代方案?

regex - 使用可选括号匹配 UUID 的正则表达式模式

正则表达式测试字符串是否以 http ://or https://开头

regex - 字母数字和下划线的正则表达式

c# - 使用 c# 或 c++ 的分水岭

c# - 如何从 Razor、MVC 渲染 # Symbol

c# - 如何阻止用户在 .net 中手动输入下载网址

javascript - 如何应用正则表达式将字符串转换为驼峰大小写并从字符串 Javascript 中删除所有特殊字符

python - 使用 entrez 和 biopython 在 medline 数据库中搜索标题