为了账号安全,请及时绑定邮箱和手机立即绑定

如何编写正则表达式以将十六进制值与变量声明相匹配?

如何编写正则表达式以将十六进制值与变量声明相匹配?

C#
慕姐4208626 2021-11-28 16:15:56
我正在尝试编写一个正则表达式来匹配可能包含以下内容之一的字符串:有效的十六进制数 - 例如,“0xa4”(0[xX][0-9a-fA-F]+)变量定义 - 例如,"$my_var" ( \$[0-9a-zA-Z_]+)item#1 和 #2 的组合 - 例如,“0xa$my_var”(??)我试过:^(?:0[xX][0-9a-fA-F]+|\$[0-9a-zA-Z_]+)$ - 但这不支持规则 #3^(?:0[xX][$0-9a-zA-Z]+)$- 它支持所有标准,但也匹配0x1z这当然不是有效的十六进制(违反规则#1)寻求社区的帮助...
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

您可以使用基于锚定交替组的正则表达式,其中一个分支包含两种模式,其中之一是可选的:

^(?:0[xX][0-9a-fA-F]+(?:\$[0-9a-zA-Z_]+)?|\$[0-9a-zA-Z_]+)$

查看正则表达式演示

细节

  • ^ - 字符串的开始

  • (?: - 非捕获组的开始:

    • 0[xX][0-9a-fA-F]+0,xX, 1+ 十六进制字符

    • (?:\$[0-9a-zA-Z_]+)?- 一个可选的$字符序列和 1+ 字字符

  • | - 或者

    • \$- 一个$字符

    • [0-9a-zA-Z_]+ - 1+字字符

  • ) - 非捕获组结束

  • $ - 字符串的结尾。


查看完整回答
反对 回复 2021-11-28
  • 1 回答
  • 0 关注
  • 222 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信