【问题标题】:Cannot change first letter to be uppercase and the rest lowercase using regex [duplicate]无法使用正则表达式将第一个字母更改为大写,其余为小写 [重复]
【发布时间】:2019-10-28 06:26:25
【问题描述】:

我正在尝试使用 Java 中的正则表达式将句子的第一个字母大写,其余小写。

我知道存在 toLowerCase 和 toUpperCase 等函数,但出于学术原因,我必须使用正则表达式。

如果除第一个单词以外的单词以大写字母开头或混合大小写, 该单词应转换为所有小写字母。第一个字应该 以大写字母开头

约翰走进了一个新世界。 ----> 约翰走进了一个新世界。

我尝试过使用类似的东西,但它不起作用,我不知道该怎么做。

data.replaceAll("([A-Z])","$1\L");

【问题讨论】:

  • 你的意思是data = data.replaceAll("([A-Z])","$1\L");?字符串是不可变的,所以replaceAll 实际上并不直接更新字符串。
  • 我必须使用正则表达式,否则我得到一个 0。我知道像 toLowercase 这样的函数存在。我也使用 data = data.replaceAll 并且正则表达式是错误的。
  • 请引用你的练习(尤其是关于使用正则表达式的部分),因为你想做的似乎没有多大意义。

标签: java regex


【解决方案1】:

你应该通过传递,我的意思是先将所有转换为小写然后大写它

【讨论】:

    猜你喜欢
    • 2016-10-20
    • 2013-11-29
    • 2018-04-16
    • 2011-05-07
    • 2019-05-15
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    相关资源
    最近更新 更多