正则表达任何东西,但字母

时间:2014-01-08 08:21:24

标签: regex regex-lookarounds

我正在为装配工作制作Nano颜色代码。

我只是这个(仅包括eax和ebx,因为有几十个):

color brightcyan "(eax|ebx)"

但是,可能会突出显示其他词语,例如“犹豫”,其中“esi”为青色。

然后我用了这个:

color brightcyan "(\ |\[|\+|\-|\]\*")(eax|ebx)"

哪个有效,但当我将它们用另一种颜色(例如[)时,将其他sybol变为青色。但是,如果它没有被字母数字字符包围,我希望它仅变为蓝色。任何其他符号不应妨碍着色,也不应着色。

3 个答案:

答案 0 :(得分:3)

试试"\b(eax|ebx)\b"。只有在未被字母数字字符或_包围时才会匹配。

答案 1 :(得分:3)

尝试使用word boundaries

color brightcyan "\b(eax|ebx)\b"

答案 2 :(得分:3)

你有一些选择。

最简单的是使用单词边界标记\b

\b(eax|ebx)\b 

只有当它形成一个完整的单词时才匹配eax或ebx。 请注意,这与您要求的不完全匹配,因为它会查找单词和非单词字符之间的区别,而不是字母数字反对非字母数字。所以我的建议在“_eax”

的情况下是不匹配的