用于汇编样式十六进制数字的c#正则表达式

本文关键字:正则表达式 十六进制数字 汇编 样式 用于 | 更新日期: 2023-09-27 18:12:17

我是regex的新手,我想在汇编风格中突出十六进制数。这样的:

00美元


美元FF
1234美元
(00美元)
(00美元,x)
甚至以#开头的十六进制数。

到目前为止,我写了"$[A-Fa-f0-9]+",看看它是否突出显示以$开头的数字,但它没有。为什么?有人能帮我一下吗?谢谢。

用于汇编样式十六进制数字的c#正则表达式

在$前放一个反斜杠,你的正则表达式就会像这样工作

'$[A-Fa-f0-9]+

$是一个有效的正则表达式字符,它与字符串的end匹配。因此,如果您的模式包含dollar,则需要对其进行转义。详细信息请参见正则表达式参考

这应该涵盖所有这些情况,包括使用#而不是$

的情况。
public Regex MyRegex = new Regex(
          "^(''()?[''$#][0-9a-fA-F]+(,x)?(?(1)''))[''s]*$",
        RegexOptions.Singleline
        | RegexOptions.Compiled
        );

单行的未转义序列:^('()?['$#][0-9a-fA-F]+(,x)?(?(1)'))['s]*$

应该在每行匹配上验证。

顺便说一下,我用Expresso
快速创建了这个正则表达式