【问题标题】:Uppercase every first English letter if it isn't uppercased already, with regex如果第一个英文字母尚未大写,则使用正则表达式将其大写
【发布时间】:2019-12-11 02:50:02
【问题描述】:

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

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

如果第一个英文字母还没有大写,我希望用正则表达式大写。

我尝试过的:

搜索(匹配):

^[a-z]*

替换为:

[A-Z]*

结果:

A-Z*U+0020 sentence

A-Z* 句

澄清一下,我得到了:

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

我的问题

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

【问题讨论】:

  • 尝试使用crtl + A 全选,然后ctrl + shift + P 然后输入命令标题(转换为标题大小写)
  • 大多数正则表达式风格不支持大小写转换,在支持它的那些中,它以各种不同的方式完成。使用 PCRE 引擎,您可以匹配 ^([a-z]) 并替换为 \U\1。在此处阅读更多信息regular-expressions.info/replacecase.html
  • 您可以在文件底部创建一个 dictionary,并在其前面添加关键字,并在那里创建替换关系,将替换值捕获到捕获组中并相应地替换它.请参阅this 演示。完成后,只需删除字典即可。
  • @Sha 它打开了一个列表,我在其中找到了“转换为大写”选项——这个函数将所有字母大写,这当然与我想要的结果不同。无论如何,我感谢你的建议,很高兴第一次知道这个列表。
  • @CAustin 我的 Windows 10 家中有 WSL;根据您的经验,也许 Bash 或其他一些 shell 可以提供帮助?无论如何,谢谢,

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


【解决方案1】:

在 vs code 上试试这个扩展。

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. ctrl + shift + P 打开命令面板
  4. 输入Change Case upperFirst 并回车。

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

希望这会对你有所帮助。

【讨论】:

  • 我试过那个扩展,它确实有一个错误,如果文件开头有空行,它会删除所有的。
【解决方案2】:

这将变得更简单,因为 vscode 添加了对\u 修饰符的支持——它将替换字符串中的以下字符大写。

您的原始查询^[a-z]* 也是一个问题,因为它使用*,所以它确实匹配空字符串。你可以简单地使用这个:

^([a-z])

\u$1 替换\u 使后面的内容大写,在您的情况下只有一个字母。

https://regex101.com/r/PDWaco/2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多