gpt4 book ai didi

vim - Vim 对正则表达式有字符限制吗?

转载 作者:行者123 更新时间:2023-12-01 09:51:29 24 4
gpt4 key购买 nike

我只是尝试(天真地)将一个宏放在一起,用于大写一组任意 SQL 保留字。

:nnoremap <leader>c :s/\(\<use\>\)\|\(\<create\>\)\|\(\<select\>\)\|\(\<update\>\)\|\(\<delete\>\)\|\(\<not\>\)\|\(\<null\>\)\|\(\<unique\>\)\|\(\<constraint\>\)\|\(\<references\>\)\|\(\<join\>\)\|\(\<on\>\)\|\(\<inner\>\)\|\(\<outer\>\)\|\(\<left\>\)\|\(\<group\>\)\|\(\<order\>\)\|\(\<having\>\)\|\(\<by\>\)/\U&/g<CR>

宏被写入我的 .vimrc,它加载得很好。但是当我运行宏时,Vim 会抛出一些错误:
E872: (NFA regexp) Too many '('
E51: Too many \(
E476: Invalid command

我一直在四处寻找,但没有发现任何迹象表明正则表达式存在限制。我对错误的最佳解读是我未能正确逃脱某些东西,但我找不到它。

我在这里是否超出了正则表达式的一些限制?

最佳答案

您只能拥有捕获模式\1..\9。如果您需要更多分组,但不需要全部捕获,您可以使用带有 \%(pattern\) 的非捕获组。句法:

/abc\%(def\)ghi/

关于vim - Vim 对正则表达式有字符限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36868879/

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