C#Regular-expression用分号分隔检查十六进制值的字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#Regular-expression用分号分隔检查十六进制值的字符串相关的知识,希望对你有一定的参考价值。

我想编写一个正则表达式来检查字符串表达式是否符合仅包含以分号分隔的十六进制值的规则?

A valid string looks like: "0x01;0x02;0X03"

An invalid string may be: "0z01;0x02,003"

那我应该怎么写这个正则表达式呢?提前致谢!

答案

你可以试试这个:

  string source = "0x01;0x02;0X03";
  string pattern = @"^(0[xX][0-9A-Fa-f]+)(;0[xX][0-9A-Fa-f]+)*$";

  bool matched = Regex.IsMatch(source, pattern);

如果你想要十六进制值表示,比如byte,即在[0x00..0xFF]范围内

  string pattern = @"^(0[xX][0-9A-Fa-f]{1,2})(;0[xX][0-9A-Fa-f]{1,2})*$";
另一答案

这个rexex就是你所需要的。

0(x|X)(d|[a-fA-F]){1,};
另一答案

试试这个吧

(0[xX][A-Fa-f0-9]+;?)+$
另一答案

我会使用字符串拆分和正则表达式的组合

string input = "0x01;0x02;0X03";

Boolean valid = input
 .Split(new char[] { ';' })
 .All(x => Regex.Match(x, "0[xX[0-9a-fA-F]{2}").Success);

以上是关于C#Regular-expression用分号分隔检查十六进制值的字符串的主要内容,如果未能解决你的问题,请参考以下文章

Oracle、Regexp、用分号分隔的字符串

在字母数字字符之间以分号分隔

CustomActionData 用分号分隔,导致字符串溢出 - 此解决方案的常见解决方法是啥?

Python oneliner if 条件与多个语句用逗号和分号分隔

我可以使用 MySQL Connector/J 执行多个用分号分隔的查询吗? [复制]

用Python读取分号(';')分隔的原始文本