/// <summary> /// 获取正则匹配想 /// </summary> /// <param name="xmlNode"></param> /// <returns></returns> private SnifferItem CreateSnifferItem(XmlNode xmlNode) { if (xmlNode == null) { return(null); } SnifferItem snifferItem = new SnifferItem(); snifferItem.RegexString = xmlNode.SelectSingleNode("RegexString").InnerText; snifferItem.ValueGroupIndex = int.Parse(xmlNode.SelectSingleNode("ValueGroupIndex").InnerText); return(snifferItem); }
/// <summary> /// 根据 Item 正则匹配获取对应的值 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="snifferItem"></param> /// <param name="inputText"></param> /// <param name="defaultValue"></param> /// <returns></returns> public static T Regex <T>(this SnifferItem snifferItem, string inputText, T defaultValue) { if (string.IsNullOrWhiteSpace(inputText) || snifferItem == null) { return(defaultValue); } RegexOptions regexOptions = RegexOptions.IgnoreCase; regexOptions |= RegexOptions.Singleline; Regex regex = new Regex(snifferItem.RegexString, regexOptions); var match = regex.Match(inputText); if (match.Success) { var result = match.Groups[snifferItem.ValueGroupIndex].Value; return((T)Convert.ChangeType(result, typeof(T))); } else { return(defaultValue); } }