我有一个用Visual Studio Code处理的纯文本文档,大约有1000行。
每行包含一个以英文字母开头的句子。
如果不是首字母大写,我希望使用正则表达式将其首字母大写。
搜索(匹配):
^[a-z]*
替换为:
[A-Z]*
结果:
A-Z*U+0020 sentence
A-Z *句子
为澄清起见,我得到了
: A-Z*
+ U+0020
(一个空格字符),在每一行的开始处,总共约1,000行。
如何用正则表达式将所有尚未大写的第一个英文字母大写?
答案 0 :(得分:1)
您可以创建一个片段来为您完成此操作(我没有在1000行上对其进行测试,但这应该不是问题)。使用代码段可让您使用其转换功能将每行的首字母大写。在您的keybindings.json中:
{
"key": "alt+-",
"command": "editor.action.insertSnippet",
"when": "editorHasSelection && editorLangId == plaintext",
"args": {
"snippet": "${TM_SELECTED_TEXT/^([a-z])/${1:/capitalize}/gm}"
// "gm" flags are crucial here
}
},
然后 Ctrl + A 选择所有文本,然后选择您在上方选择的任何键绑定,例如 Alt + -
这部分捕获捕获组1:^([a-z])
中该行的第一个字母。
${1:/capitalize}
转换前一个正则表达式中匹配的内容:捕获组1将大写。
这不能在搜索和替换中完成,因为vscode不支持\U
或任何其他大写结果的版本。 \U
是后面的大写标志-但不能在vscode替换字段中使用,但可以在摘要转换中使用:/capitalize
。您也可以使用:/upcase
,:/downcase
和:/pascalcase
。参见https://code.visualstudio.com/docs/editor/userdefinedsnippets#_variable-transforms
答案 1 :(得分:0)
Name: change-case
Id: wmaurer.change-case
Description: Quickly change the case (camelCase, CONSTANT_CASE, snake_case, etc) of the current selection or current word
Version: 1.0.0
Publisher: wmaurer
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=wmaurer.change-case
change-case
ctrl + A
ctrl + shift + P
打开命令选项板Change Case upperFirst
,然后按Enter。它将把您的文档的第一个字母转换为大写。
希望这会对您有所帮助。