首页 > 系统相关 >Windows判断一个字符串是否纯十六进制数

Windows判断一个字符串是否纯十六进制数

时间:2023-12-28 10:46:40浏览次数:22  
标签:std 十六进制 匹配 Fa Windows 9A 字符串 正则表达式

#include <regex>
using namespace std;

bool IsHexDigit(const TCHAR* s)
{
    TCHAR* pattern = _T("^0[xX][0-9A-Fa-f]+$|^[0-9A-Fa-f]+$");
#ifdef UNICODE
    std::wregex re(pattern);
#else
    std::regex re(pattern);
#endif // UNICODE
    return std::regex_match(s, re);
}
 

这个正则表达式“^0[xX][0-9A-Fa-f]+$|^[0-9A-Fa-f]+$”用于匹配十六进制数,并可以忽略大小写。让我们分解这个正则表达式的每一部分:

  1. ^: 匹配字符串的开始。
  2. 0[xX]: 匹配字符 "0" 后跟 "x" 或 "X"。这用于匹配十六进制数的前缀 "0x"。
  3. [0-9A-Fa-f]+: 匹配一个或多个十六进制数字。这包括数字 0-9 和字母 A-F(不区分大小写)。
  4. $: 匹配字符串的结束。
  5. |: 逻辑或,用于分隔两个不同的匹配模式。
  6. ^[0-9A-Fa-f]+$: 这与前面的模式相似,但不需要 "0x" 前缀。

所以,这个正则表达式可以匹配两种情况:

  1. 以 "0x"(或0X) 开头的十六进制数,如 "0x1A"。
  2. 不带 "0x"(或0X) 前缀的十六进制数,如 "1A"。

注意:这个正则表达式仅适用于以十六进制表示的整数。如果你想匹配包含字母的十六进制字符串(例如十六进制颜色代码或十六进制编码),则需要使用不同的正则表达式。

标签:std,十六进制,匹配,Fa,Windows,9A,字符串,正则表达式
From: https://www.cnblogs.com/kuaixue/p/17932202.html

相关文章

  • C# 输出的格式转换,占位/补位,字符串拼接、字符串内插法
    //“0”描述:占位符,如果可能,填充位     Console.WriteLine(string.Format("{0:000000}",1234));//结果:001234     //“#”描述:占位符,如果可能,填充位     Console.WriteLine(string.Format("{0:######}",1234));//结果:1......
  • 字符串字面量初始化数组的歧义?
    chararr[]={'h','e','l','l','o','\0'}声明初始化一个字符数组。为了方便书写,我们也可以写成语法糖形式chararr={"hello"}或者char[]arr="hello""hello"是一个char[]数组类型,C语言规定:数组类型对象用作表达式会转换为首元素指针所以我......
  • C# 封装 Windows 全局热键
    全局热键工具类(GlobalHotkey)【文/张赐荣】1.功能概述全局热键工具类(GlobalHotkey)是一个用于注册全局热键的工具类。它允许你在你的应用程序中注册特定的键盘组合,以便在用户按下这些组合时触发相应的事件。此工具类提供了以下主要功能:注册多个热键并定义每个热键的组合。......
  • cmake管理qt项目,设置windows和linux下生成的程序图标,以及任务栏显示设置的图标
    先代码设置MainWindow图标://主要用于在linux下运行程序时,在任务栏显示图标MainWindoww;w.setWindowIcon(QIcon(":/res/icon.png"));(*windows下设置生成的exe程序的ico图标后,默认也会对运行程序时任务栏的图标也设置成这个ico,但是同样的代码拿到linux下就无效,需要其他方......
  • 十进制整数转十六进制字符串
    描述编写一个函数,传入一个十进制的正整数,将十进制整数转换为十六进制的字符串并返回。(十六进制字符串中的字母全部大写)输入描述:键盘输入一个十进制的正整数输出描述:输出该十进制整数转换后的十六进制字符串示例1输入:162输出:A2示例2输入:50输出:32示例3输入:501输出:1F5......
  • [App Service for Windows]通过 KUDU 查看 Tomcat 配置信息
    问题描述在AppService中选择了JavaTomcat后,如何查看AzureAppService的Tomcat的配置信息呢? 问题解答可以通过以下的3个步骤查看: 第一步:登录Kudu:方式一:在当前Web应用的URL中加入 .scm (插入位置在site名与chinacloudsites之间)。方式二:在当前Web应用的Azure......
  • [App Service for Windows]通过 KUDU 查看 Tomcat 配置信息
    问题描述在AppService中选择了JavaTomcat后,如何查看AzureAppService的Tomcat的配置信息呢? 问题解答可以通过以下的3个步骤查看: 第一步:登录Kudu:方式一:在当前Web应用的URL中加入 .scm (插入位置在site名与chinacloudsites之间)。方式二:在当前Web应用......
  • Windows平台实现超高分辨率或帧率硬编码
    我们在做Windows平台RTMP推送或轻量级RTSP服务模块的时候,遇到这样的问题,有些超高清场景(4K甚至更高分辨率)或高帧率场景(50帧+)的编码,比如地铁安检机数据分析检测,设备性能一般的话,软编码很容易出现瓶颈,这个时候就需要硬编。基于此,我们前几年发布了基于NVIDIA的硬编。硬编码逻辑调用:priv......
  • 软件测试/测试开发|你不知道的Windows神操作
    简介Windows操作系统是由微软公司开发的操作系统系列,是全球最广泛使用的操作系统之一。首次发布于1985年,经历了多个版本和更新,如Windows95、WindowsXP、Windows7、Windows10等。目前发行到了Windows11版本,本文将为大家介绍Windows11版本的操作。Windows基础命令##windows......
  • Windows平台如何实现RTSP拉流添加动态水印|视频处理后转推RTMP或轻量级RTSP服务
     技术背景我们在做Windows平台流数据转发的时候,除了常规的RTSP转RTMP推送外,还有个场景就是,好多开发者希望拉取的RTSP流,做二次视频分析,或者加动态水印等,处理后的数据,再二次编码推送到RTMP服务或轻量级RTSP服务。技术实现本文就以Windows平台拉取RTSP流,回调yuv数据到上层,处理后的数......