用于汇编样式十六进制数字的 C# 正则表达式
我是正则表达式的新手,我想以汇编样式突出显示十六进制数字。像这样:
$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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 $ 之前添加一个反斜杠,您的正则表达式将像这样工作,因此
$ 是与字符串结尾匹配的有效正则表达式字符。因此,如果您的模式包含美元,那么您需要转义它。有关详细信息,请参阅正则表达式参考
Put a back slash before $ and your regex will work like so
$ 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
的情况
这应该涵盖所有这些情况,包括您得到 # 而不是 $单行的未转义序列 :
^(\()?[\$#][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 $
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