gpt4 book ai didi

c# - 正则表达式匹配有效的十六进制字符串但不是全部 '0'

转载 作者:行者123 更新时间:2023-11-30 15:15:13 25 4
gpt4 key购买 nike

我正在尝试编写一个 Regex 来匹配有效的十六进制字符串,但不包含全零值。

如何编写 Regex 来匹配有效的十六进制字符串是常识。

最简单的是^0[xX][0-9a-fA-F]+$

但是,在所有可能的十六进制字符串中,匹配零的应该是无效的。

例如,

0x00x000x00000均无效

但是

0x01, 0x001, 0x010 有效

最佳答案

您可以使用前瞻来限制匹配:

^0[xX](?!0+$)[0-9a-fA-F]+$
^^^^^^^

此处,在匹配 0x0X 后,如果有 1+ 个零,则 (?!0+) 否定先行匹配失败到紧靠右边的字符串末尾。

参见 regex demo

C# 可能的用法示例:

if (Regex.IsMatch(s, @"^0x(?!0+$)[0-9a-f]+$", RegexOptions.IgnoreCase))
{
// Valid
}

关于c# - 正则表达式匹配有效的十六进制字符串但不是全部 '0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52976241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com