正则表达式,用于匹配由任意数量的单词组成的任意长度的字符串,其最后一个单词总是Child(1到10之间的整数)
本文关键字:Child 单词总 最后一个 整数 之间 用于 任意数 正则表达式 任意长 单词组 字符串 | 更新日期: 2023-09-27 18:18:28
我正在寻找一个正则表达式,它允许我过滤由任意数量的单词组成的字符串列表,其最后一个单词的最后一个字符必须小于或等于给定的整数。列表中每个目标字符串的最后一个单词总是Child<1到10>。例如:
List<string> attributes = new List<string>
{
"First Name of Child1",
"Last Name of Child1",
"Age of Child1",
"Shipping Instructions",
"First Name of Child2",
"Last Name of Child2",
"Age of Child2",
"Non-Profit Name",
"First Name of Child3",
"Last Name of Child3",
"Age of Child3",
}
如果目标整数为2,则过滤列表将包含:
"First Name of Child1",
"Last Name of Child1",
"Age of Child1",
"First Name of Child2",
"Last Name of Child2",
"Age of Child2"
var regex=new Regex(string.Join("|",Enumerable.Range(0,n).Select(i=>"Child"+i+"$")));
试试这个:
int selected = 2;
string exp = "Child(?<number>''d{1,2})$";
Regex rg = new Regex(exp);
var result = attributes.Where(a =>
{
int i;
string target = rg.Match(a).Groups["number"].Value;
if (!int.TryParse(target, out i))
return false;
return (i <= selected);
});
由于我对正则表达式数字"范围"处理的理解不佳而编辑的代码。