【问题标题】:How to use Regex to convert initial letter of a string to upper case如何使用正则表达式将字符串的首字母转换为大写
【发布时间】:2020-05-12 08:19:05
【问题描述】:

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

列表:[“必需”,“入境时待定”,“呼吸器、手套、工作服等”]

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

到这里:

列表:[“必需”、“入境时待定”、“呼吸器、手套、工作服等”]

注意:“TBD”应保留为“TBD”而不是“Tbd”

【问题讨论】:

    标签: regex rubymine case-conversion


    【解决方案1】:

    您可以匹配前面带有" 的任何小写字母:

    搜索(?<=")\p{Ll}
    替换\U$0

    请参阅regex demo。检查匹配大小写以确保仅匹配小写字母。

    详情

    • (?<=") - 一个积极的向后看,确保前面的字符是 "
    • \p{Ll} - 任何 Unicode 小写字母。

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

    【讨论】:

      【解决方案2】:

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

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

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

      替换:"\U$1\E

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

      它成功了!

      【讨论】:

        猜你喜欢
        • 2019-09-19
        • 2011-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-16
        • 2018-12-29
        • 2010-11-12
        • 1970-01-01
        相关资源
        最近更新 更多