如何使用JToken.SelectToken查找与模式匹配的路径中的值(例如,查找所有有效电子邮件地址的值)?是否有像other frameworks support这样的正则表达式兼容性?
答案 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+)*$/)]");