ray*_*ran 2 c# regex string hex match
我有一个格式如下的字符串:$ 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");
Run Code Online (Sandbox Code Playgroud)
它似乎没有用,有什么我想念的吗?
m0s*_*it0 14
$是正则表达式中的特殊字符,表示字符串结尾.由于你在字符串结束后指定了东西,所以正则表达式根本不匹配任何东西.逃避$字符就像
"\$[0-9a-fA-F]{2},"
Run Code Online (Sandbox Code Playgroud)
无论如何AFAIK这对你的字符串不起作用,因为它不以","结尾.你可以试试:
"^(\$[0-9a-fA-F]{2},?)+$"
Run Code Online (Sandbox Code Playgroud)
您甚至可以通过使用不区分大小写的正则表达式匹配来简化正则表达式:
Regex reg = new Regex(@"^(\$[0-9A-F]{2},?)+$", RegexOptions.IgnoreCase);
Run Code Online (Sandbox Code Playgroud)
编辑:更正恰好匹配2个十六进制数字.
编辑:也许你应该写你的正则表达式检查,如:
if (Regex.IsMatch(a,@"^(\$[0-9A-F]{2},?)+$",RegexOptions.IgnoreCase))
{
// Do whatever
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6072 次 |
| 最近记录: |