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

发布于 2024-12-11 10:51:23 字数 199 浏览 0 评论 0原文

我是正则表达式的新手,我想以汇编样式突出显示十六进制数字。像这样:

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

到目前为止,我写了“$[A-Fa-f0-9]+”来查看它是否突出显示以 $ 开头的数字,但事实并非如此。为什么?有人可以帮助我做我正在做的事情吗?谢谢。

I'm new to regex and I want to highlight hexadecimal numbers in Assembly style. Like this:

$00
$FF
$1234
($00)
($00,x)
and even hexadecimal numbers that begin with #.

So far I wrote "$[A-Fa-f0-9]+" to see if it highlights numbers beginning with $ but it doesn't. Why? And can someone help me with what I'm doing? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

染火枫林 2024-12-18 10:51:24

在 $ 之前添加一个反斜杠,您的正则表达式将像这样工作,因此

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

$ 是与字符串结尾匹配的有效正则表达式字符。因此,如果您的模式包含美元,那么您需要转义它。有关详细信息,请参阅正则表达式参考

Put a back slash before $ and your regex will work like so

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

$ is a valid regex character that matches with end of string. So if your pattern contains dollar then you need to escape it. See regex reference for details

北风几吹夏 2024-12-18 10:51:24

的情况

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

这应该涵盖所有这些情况,包括您得到 # 而不是 $单行的未转义序列 : ^(\()?[\$#][0-9a-fA-F ]+(,x)?(?(1)\))[\s]*$

这应该在每行匹配上验证。

顺便说一句,我使用 Expresso 很快就制作了这个正则表达式

This should cover all those cases, including the cases in which you get a # instead of a $

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

The unescaped sequence for the single line: ^(\()?[\$#][0-9a-fA-F]+(,x)?(?(1)\))[\s]*$

That should validate on a per-line match.

By the way, I made this regex pretty quickly using Expresso

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文