regex - 匹配字符占位符(可以放置输入光标的位置)
问题描述
我使用 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?
解决方案
使用正则表达式很简单。正则表达式具有“开始”和“结束”字符串的标识符。(根据您的输入,您可以将每个句子视为自己的字符串)。
要匹配字符串的开头,正则表达式是 -^
而要匹配字符串的结尾,正则表达式是$
。
现在要实现您的请求,您需要做的就是使用 - 匹配整行
^(.*?)$
并将其替换为|\s$1\s|
(这$1
是对捕获组的反向引用)它看起来像 -Search ^(.*)$ Replace |\s$1\s|
推荐阅读
- c# - DataGrid 绑定到复杂数据类型 WPF(xaml) 的列表
- javascript - 如何使用 Angular 10 嵌入 Tableau Software viz?
- c - 仅使用 ~ 和 | 制作二进制 & 函数
- php - 如何在 php Laravel 中使用基本 api 令牌和 JWT 令牌都在同一个 api 中工作?
- java - 在 else 子句启动之前退出带有标记值的 do-loop
- c - 如何使用 C 中的套接字向 http/https 网站发送 GET 请求
- java - 获取 Intellij Idea 中的 Android Studio gradle 脚本部分
- python - 如何迭代列表并通过 pandas 数据框列获取情绪?
- java - 如何在不本地创建数据库的情况下测试飞行迁移?
- javascript - 在数据库或单独的表中的一行中存储一系列日期