【问题标题】:Regex for Hexadecimal String 00FF...FF and FF...FF00十六进制字符串 00FF...FF 和 FF...FF00 的正则表达式
【发布时间】:2014-12-11 08:16:28
【问题描述】:

我需要匹配 3 种十六进制模式(已经是字符串格式)

  1. 全FF
  2. 一个字节后跟所有的FF
  3. 全FF,后跟一个字节

对于数字 1,我使用了 ^(FF)\\1*$,它正在工作。 2号和3号,怎么做?

【问题讨论】:

  • 你能举个byte followed by all FF的例子吗
  • 在题名中,比如00FFFFFFFF
  • 你为什么要使用^(FF)\\1*$ 作为数字 1? ^(FF)+$ 还不够吗?
  • @Jerry:我修改了另一个帖子的答案。尝试了 + 和 \1 并且都给出了相同的结果

标签: c# regex hex


【解决方案1】:

您可以使用形式的正则表达式

^([\dA-F]{2})?(FF)*([\dA-F]{2})?$

将匹配表单的所有字符串

FFFF
00FFFF
FFFF50

编辑

单独匹配

^([\dA-F]{2})?(FF)*$

匹配

34FFFF
00FFFF

^(FF)*([\dA-F]{2})?$

匹配字符串

FFFF50
FFFFAB

【讨论】:

  • \d 表示数字对吗?一个字节需要两个十六进制字符 0-9A-F
  • @David 一开始并不清楚。已编辑答案。希望它能达到你的预期。
  • 好的,它正在工作。但是答案需要分成两部分,每一个前面都有 ([\dA-F]{2}),后面还有一个。
  • @David 的意思是你需要分别匹配包含在开头和结尾的字符串??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-06
  • 2014-03-05
  • 1970-01-01
  • 1970-01-01
  • 2011-07-16
  • 2019-04-25
相关资源
最近更新 更多