题:
我想在emacs中创建一个数字字体锁面,但是我无法获得符合我需要的正则表达式.这是我有的:
"\\<\\([0-9]*\\.?[0-9]*\\)+\\(d\\|f\\)?\\>"
我想要它匹配:
> 2
> 2.1
> 2.1f或2.1d
> .1f或.1d
我不希望它匹配
> 2.
> 2.f或2.d
> f或d
目前的问题:
目前它主要起作用但它与.2或.2f之类的数字不匹配,因为它在数字之前没有拾取(.).它目前还在代码中的任何位置匹配单个“f”或“d”,因此变量名称为f或d匹配.我在这里错过了什么?在过去一周左右的每个午休时间,我都在摆弄这个,我很难过.
最佳答案 您可以使用这样的正则表达式(PCRE语法):
(\d*\.\d+|\d+)[fd]?
(根据需要锚定它.)
转换为Emacs风格的正则表达式(Jon O):
"\\<\\([0-9]*\\.[0-9]+\\|[0-9]+\\)[df]?\\>"