【问题标题】:Split mixed upper and lowercase in the same word into two lines将同一个单词中混合大小写分成两行
【发布时间】:2021-01-05 11:16:15
【问题描述】:

我的单元格中有一个缺少新行的字符串。

看起来像这样:

Text Text TextText Text Text T5df Tdfcv TextNeu

换句话说:

如果单词中的小写字母变为大写字母,则应在此处插入新行 \n

所以示例将转换为

Text Text Text
Text Text Text T5df Tdfcv Text
Neu

回复:

Text Text Text\nText Text Text T5df Tdfcv Text\nNeu

我找到了

String[] r = s.split("(?=\\p{Lu})");

我尝试了REGAUS(F2;"(?=\\p{Upper})";"\n";"g"),但我得到了502,因为正则表达式有问题。

calc 需要哪个公式来执行此操作?

【问题讨论】:

    标签: regex openoffice-calc


    【解决方案1】:

    使用英文公式名称,以下公式可以解决问题:

    =REGEX(A1;"([:lower:])([:upper:])";"$1"&CHAR(10)&"$2";"g")

    为了便于阅读,多行相同:

        =REGEX(
            A1;
            "([:lower:])([:upper:])";
            "$1" & CHAR(10) & "$2";
            "g"
        )
    

    它匹配一个小写字母后跟一个大写字母,并使用 CHAR() 函数插入换行符。

    您必须手动调整行高,否则您只会看到“Neu”(最后一行)。

    对于本地化的公式名称(德语),它将是:

    =REGAUS(A1;"([:lower:])([:upper:])";"$1"&ZEICHEN(10)&"$2";"g")

    我原以为插入“\n”也应该可以工作,但我没有设法让它工作,因此求助于 CHAR(10)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 2020-08-30
      相关资源
      最近更新 更多