首页 > 解决方案 > 匹配字符占位符(可以放置输入光标的位置)

问题描述

我使用 Visual Studio Code,但我遇到了一个 1,000 行长的.md文档的问题,其中通常每一行都包含一个或多个句子。
我希望用竖线(一个从左边,一个从右边,有各自的空格)包裹每个句子,以便将长句子列表转换为(单列)降价表的过程。

电流输入

sentence

所需输入

| Sentence |

或者:

| Sentence. Sentence |

等等...


我是怎么想的

一般来说,我可以将输入光标(l-beam cursor)放在文本字段中字符旁边的任何位置;
我假设任何这样的“地方”(我可以放置输入光标的地方)都可以被命名为“字符占位符”(CP)。

我假设 CP 是按字符创建的(例如,只有一个字符的行将包含两个 CP),如果是这样,则可以在之前和之后自由匹配 CP1 和 CP2(或 CP0 和 CP1 - 取决于基本索引)分别是性格。

我想命令 VSCODE|U+0020在每行第一个字符之前可用的 CP 中以及每行最后一个字符之后可用的 CP 中添加一个竖线和一个相应的空格 ( ) ( U+0020|) 。

我的问题

由于我只知道使用正则表达式匹配字符(或字符集)本身的方法,但我不知道如何仅匹配 CP,所以我问:

如果有的话,如何匹配 CP,以当前的技术,命令一个程序在 CP Y 中添加数据 X?

标签: regexinputcursorcharacterfield

解决方案


使用正则表达式很简单。正则表达式具有“开始”和“结束”字符串的标识符。(根据您的输入,您可以将每个句子视为自己的字符串)。

要匹配字符串的开头,正则表达式是 -^而要匹配字符串的结尾,正则表达式是$

现在要实现您的请求,您需要做的就是使用 - 匹配整行 ^(.*?)$并将其替换为|\s$1\s|(这$1是对捕获组的反向引用)它看起来像 -Search ^(.*)$ Replace |\s$1\s|


推荐阅读