これは JSON であるため、わざわざ正規表現を機能させようとする必要はありません。代わりに、JSON を解析してから LINQ を使用できます。
using System.Web.Script.Serialization; // (in System.Web.Extensions.dll)
...
string s = "[{\"ta_id\":97497,\"partner_id\":\"229547\",\"partner_url\":\"http://partner.com/deeplink/to/229547\"},{\"ta_id\":97832,\"partner_id\":\"id34234\",\"partner_url\":\"http://partner.com/deeplink/to/id34234\"}]";
JavaScriptSerializer j = new JavaScriptSerializer();
object[] objects = (object[])j.DeserializeObject(s);
string[] ids = objects.Cast<Dictionary<string, object>>()
.Select(dict => (string)dict["partner_id"])
.ToArray();
型情報がないため、オブジェクトに逆シリアル化するのは少し面倒です。逆シリアル化する小さなクラスを作成することを恐れていない場合は、次のようなことができます。
class Foo
{
public string partner_id
{
get;
set;
}
}
...
JavaScriptSerializer j = new JavaScriptSerializer();
string[] ids = j.Deserialize<Foo[]>(s).Select(x => x.partner_id).ToArray();
JSON を逆シリアル化するための他のオプションがあることに注意してください。内蔵されている最も汎用性の高いものを選択しただけです。