我是regex的新手,我想在Assembly风格中突出显示十六进制数字。像这样:
$ 00
$ FF
$ 1234
($ 00)
($ 00 X)
甚至以#。
到目前为止,我写了“$ [A-Fa-f0-9] +”,看它是否突出显示以$开头的数字,但事实并非如此。为什么?有人可以帮助我做我正在做的事情吗?感谢。
答案 0 :(得分:4)
在$之前放一个反斜杠,你的正则表达式会像这样工作
\$[A-Fa-f0-9]+
$是与字符串结尾匹配的有效正则表达式字符。因此,如果您的模式包含美元,那么您需要逃避它。有关详细信息,请参阅regex reference
答案 1 :(得分:1)
这应该涵盖所有这些情况,包括你获得#而不是$
的情况public Regex MyRegex = new Regex(
"^(\\()?[\\$#][0-9a-fA-F]+(,x)?(?(1)\\))[\\s]*$",
RegexOptions.Singleline
| RegexOptions.Compiled
);
单行的未转义序列:^(\()?[\$#][0-9a-fA-F]+(,x)?(?(1)\))[\s]*$
这应该在每线匹配上验证。
顺便说一句,我使用Expresso
很快就制作了这个正则表达式