我正在使用语法突出显示控件,并且必须使用正则表达式指定所有突出显示的内容。我已经完成了其他所有内容(关键字、函数、字符串、注释等),但我无法为幻数提出一个好的规则。如果有帮助的话,我会将它用于 Lua 文本编辑器。
我目前正在\d+
用来检测数字,但问题是我最终得到了这样的结果:
如您所见,我的变量名称也突出显示了其中的一部分。
有没有人知道使这个特定规则正常工作的方法?
我正在使用语法突出显示控件,并且必须使用正则表达式指定所有突出显示的内容。我已经完成了其他所有内容(关键字、函数、字符串、注释等),但我无法为幻数提出一个好的规则。如果有帮助的话,我会将它用于 Lua 文本编辑器。
我目前正在\d+
用来检测数字,但问题是我最终得到了这样的结果:
如您所见,我的变量名称也突出显示了其中的一部分。
有没有人知道使这个特定规则正常工作的方法?
您不希望它在名称中匹配,因此添加一个单词边界:\b\d+\b
。
对于浮点数,可能有一个小数部分:\b\d+(?:\.\d+)?\b
.
对于浮点数,也可能有一个指数:\b\d+(?:\.\d+)?(?:[Ee][+\-]?\d+)\b
。
我会说在正则表达式方面保持简单(即只写你需要的,而不是更多)。以下将第 2 组匹配到正在分配的浮点数和整数:
(=\s*)([\d|\.]+)(\s*;)
希望有帮助。