如何在vimscript中使用正则表达式处理文本变量?

7

我有一个保存在变量中的文本,例如:

let text = getline(line(".")-1)

如何检查文本是否符合正则表达式?我期望得到像这样的东西:
let text = getline(line(".")-1)
if regexp_match(text, "^[Ss]tuff$")
    dostuff
endif

1
嗯...尝试输入:h regex并按Tab键,试图在帮助中找到一些有用的内容。当有人询问如何做某事时,“你尝试过什么?”是否是一个合适的问题? - gvlasov
2
好的,快速谷歌搜索“vim-script regex”返回的顶部结果是:https://dev59.com/SnA75IYBdhLWcg3wubun。在提问之前做一些功课会很有帮助。 - CrazyCasta
1
根据您所选择的路径,您需要付出不同的努力。我最初通过Google搜索“vimscript if regex”来到这里,感谢您提供了这个链接。更好的是,您鼓励OP自己进行研究,提供了他们和我正在寻找的实际答案,而您的链接并没有提供。 - Medlock Perlman
1个回答

10

经过更多的研究,我发现我需要使用=~# 运算符来检查某些文本是否与正则表达式匹配:

if "text"=~#"^te.."
    echo "Matches!"

有时候在正则表达式周围使用单引号 ' 而不是双引号 " 会更好。https://vi.stackexchange.com/questions/28233/why-doesnt-regex-work-in-vimscript-while-it-does-in-normal-search - alec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接