Esempio n. 1
0
        /// <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);
            }
        }