gpt4 book ai didi

C# 正则表达式不匹配字符串

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

我有一个格式如下的字符串:$20,$40,$AA,$FF。基本上,十六进制数,它们可以有很多字节。我想检查一个字符串是否是上面的格式,所以我尝试了这样的事情:

        string a = "$20,$30,$40";

Regex reg = new Regex(@"$[0-9a-fA-F],");
if (a.StartsWith(string.Format("{0}{1}", reg, reg)))
MessageBox.Show("A");

虽然它似乎不起作用,但我是否遗漏了什么?

最佳答案

$是正则表达式中的特殊字符,表示字符串结束。该正则表达式根本不匹配任何内容,因为您在字符串结尾之后指定了内容。像

这样转义 $ 字符
"\$[0-9a-fA-F]{2},"

无论如何,据我所知,这不适用于您的字符串,因为它不以“,”结尾。您可以尝试:

"^(\$[0-9a-fA-F]{2},?)+$"

您甚至可以使用不区分大小写的正则表达式匹配来简化正则表达式:

Regex reg = new Regex(@"^(\$[0-9A-F]{2},?)+$", RegexOptions.IgnoreCase);

编辑:已更正以准确匹配 2 个十六进制数字。

编辑:也许你应该像这样写你的正则表达式检查:

if (Regex.IsMatch(a,@"^(\$[0-9A-F]{2},?)+$",RegexOptions.IgnoreCase)) 
{
// Do whatever
}

关于C# 正则表达式不匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7995243/

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