如果第一个英文字母还没有大写,则使用正则表达式将其大写

时间:2019-12-11 02:50:02

标签: regex visual-studio-code capitalization vscode-snippets

我有一个用Visual Studio Code处理的纯文本文档,大约有1000行。
每行包含一个以英文字母开头的句子。

  • 没有特殊字符用作起始字符。
  • 在某些句子中,第一个字母是大写的,
  • 在其他一些句子中,第一个字母小写。

如果不是首字母大写,我希望使用正则表达式将其首字母大写。

我尝试过的事情:

搜索(匹配):

^[a-z]*

替换为:

[A-Z]*

结果:

A-Z*U+0020 sentence
  

A-Z *句子

为澄清起见,我得到了

A-Z* + U+0020(一个空格字符),在每一行的开始处,总共约1,000行。

我的问题

如何用正则表达式将所有尚未大写的第一个英文字母大写?

2 个答案:

答案 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

capitalize first letter

答案 1 :(得分:0)

在vs代码上尝试使用此扩展程序。 enter image description here

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
  1. 安装扩展change-case
  2. 通过ctrl + A
  3. 选择所有文本
  4. 通过ctrl + shift + P打开命令选项板
  5. 键入Change Case upperFirst,然后按Enter。

它将把您的文档的第一个字母转换为大写。

希望这会对您有所帮助。