C# 正则取值

在十六进制字符串中使用正则表达式取值,使用正则表达式能起到事半功倍的效果。


在十六进制的字符串中,16为停止位,18为CheckSum, 0F352A 为Funcode,00 为数据。

实现的功能函数如下:

         /// <summary>

        /// 从返回的十六进制中取值

        /// </summary>

        /// <param name="hexstring"></param>

        /// <param name="Fc">Function Code</param>

        /// <returns></returns>

        private string GetValue(string hexstring, string Fc)

        {

            string pattern = $"(?<={Fc})[0-9A-F]+(?=16)";

            Match m = Regex.Match(hexstring, pattern);

            if (m.Success)

            {

                return m.Value;

            }

            else

                return "";

        }



UI在Button事件中测试:

    private void btnGetReturnData_Click(object sender, RoutedEventArgs e)

        {

            string receiveData = txtCmd.Text;//"08FE72FFFFFFFF496A011A680000000F352A001816";

            string v = GetValue(receiveData, "0F352A");

            if(v.Length>=4)

            {

                string data = v.Substring(0, v.Length - 2);

                string cs = v.Substring(v.Length - 2, 2);

                txtMsg.Text = $"Data:{data}  CS:{cs}";

            }

        }

获取的数据和预期的一致。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容