gpt4 book ai didi

regex - Vimscript 正则表达式空行

转载 作者:行者123 更新时间:2023-12-04 02:23:28 25 4
gpt4 key购买 nike

所以我正在学习 Vimscript 和 Regex。我试图检测当前行是否为空。空我的意思是 """ " (任意数量的空格/制表符):

function! IsCurrentLineEmpty()
return IsLineEmpty(getline('.'))
endfu

function! IsLineEmpty(line) // returns 1 if the line is empty, 0 otherwise
if match(a:line, "^\s*$") != -1 // also tried \s+ instead of \s*
return 1
endif
endfu

如果我将光标放在空行或空格/制表符上, IsCurrentLineEmpty总是返回 0

我试过其他正则表达式,如 ^[ \t]+|[ \t]+$ (还有 \s\t\s 而不是 ' \t' )但没有一个真正起作用。

任何帮助,将不胜感激!谢谢。

最佳答案

正如@vexe 所指出的,您只需要转义反斜杠即可。但您也可以简化您的功能:

function! IsLineEmpty(line)
return match(a:line, "^\\s*$") != -1
endfu

另一种解决方案是使用单引号而不是双引号:
return match(a:line, '^\s*$') != -1

另一种解决方案是使用 Vim 的正则表达式匹配运算符:
return line =~ '^\s*$'

或者,您可以测试该行是否包含任何非空白字符:
return line !~ '[^\s]'

关于regex - Vimscript 正则表达式空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25438985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com