如何解决在VS代码中搜索,但\ s不等于[\ f \ n \ r \ t \ v]
我要在匹配的每一行之后替换多余的空白
[\s]+\n
问题是空行也将被匹配
根据我的理解,“ \ s”等于“ [\ f \ n \ r \ t \ v]”,所以我将表达式更改为
[ \f\r\t\v]+\n
排除“ \ n”,但是这次我什么都没有...
有人知道为什么吗?
解决方法
背景
首先,Visual Studio Code regex有时无法正常使用,因为它被“调整”为使用文本编辑器。
请注意,\s
仅在模式中包含\n
或\r
时才匹配换行符(垂直空格)。因此,[\s]+\n
跨行匹配,它匹配1个或多个任何空格字符,然后在该空白部分的最后一个换行符处停止。
因此,如果您需要在一行的末尾匹配水平空白,我想您可以使用\s+
(一个或多个空白字符)和$
(一行的末尾)的组合)。
但是,\s+$
仅在至少出现两次空白字符的情况下才与行末匹配空白。
解决方案
\s*$
演示屏幕截图:
,在我要使用的行尾查找空白
[ \t]+(?=\r?\n)
如果没有\n
,则不会捕获带有空格的最后一行。为此,您需要使用不受$
影响的\n
[ \t]+$
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。