如何使用正则表达式将字符串的首字母转换为大写

How to use Regex to convert initial letter of a string to upper case

在编辑器(例如 Rubymine 或 IntelliJ)中给定一堆字符串,如下所示:

list: ["required","TBD at time of entry", "respirator, gloves, coveralls, etc."]

如何使用内置的正则表达式搜索和替换将 initial 字母转换为 upper 大小写?

为此:

list: ["Required","TBD at time of entry", "Respirator, gloves, coveralls, etc."]

请注意:"TBD" 应保留为 "TBD" 而不是 "Tbd"

(我认为 IntelliJ 和 RubyMine 有 Java 有效的正则表达式规则。)

(为了我未来的自己)我使用了以下正则表达式:

搜索:"(?)([a-z])

替换:"\U\E

顺便说一句:无法弄清楚为什么还选择了大写字母。 (耸肩)

成功了!

您可以匹配前面带有 ":

的任何小写字母

搜索(?<=")\p{Ll}
替换\U[=12=]

参见regex demo。检查 大小写匹配 以确保只匹配小写字母。

详情

  • (?<=") - 确保前面的字符是 "
  • 的正后视
  • \p{Ll} - 任何 Unicode 小写字母。

请注意 \U - 大写转换运算符 - 如果您不需要限制其范围并且 [=18=] 反向引用指的是整个匹配值,则不需要尾随 \E,否需要用捕获组包裹整个模式。