使用正则表达式的JToken.SelectToken来查找与模式匹配的值?

时间:2018-03-13 12:19:33

标签: c# json.net jsonpath

如何使用JToken.SelectToken查找与模式匹配的路径中的值(例如,查找所有有效电子邮件地址的值)?是否有像other frameworks support这样的正则表达式兼容性?

1 个答案:

答案 0 :(得分:4)

我不确定这是否记录在任何地方(我至少找不到),但实际上在最后的版本中(从11.0.1开始)它确实如此。语法是=~ /regex here/。例如:

JObject o = JObject.Parse("{\"Objects\": [{\"Email\": \"test@gmail.com\"}, {\"Email\":\"not an email\"}]}");
// returns only "test@gmail.com" token
var result = o.SelectToken(@"$.Objects[?(@.Email =~ /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/)]");