LinqPad のこのコードは、正規表現で数値の文字列を出力します。
void Main()
{
string a = "1, 2, 3, 4, 5, 6, 7";
var myList = Regex.Match(a, @"^\s*((\d+)\s*,?\s*)+\s*$")
.Groups[2].Captures.ToList();
myList.Dump();
}
public static class EM
{
public static List<string> ToList( this CaptureCollection value)
{
var result = new List<string>();
foreach( var item in value)
{
result.Add( ((Capture) item).Value );
}
return result;
}
}
それは機能しますが、私の主な焦点は、正規表現を使用して文字列配列に数字のみを入れることです。同じことを達成するための短くて甘いものはありますか?
編集:
次のようなものを解析する必要があるため、正規表現を使用しています。
string a = "deptid = 1, 2, 3, 4, 5, 6, 7";
var myList = Regex.Match(a,
@"^\s*(?<field>[A-Za-z0-9]+)\s*(?<op>==?)\s*((\d+)\s*,?\s*)+\s*$")
.Groups[2].Captures.ToList();