将同一个单词中混合大小写分成两行
Posted
技术标签:
【中文标题】将同一个单词中混合大小写分成两行【英文标题】: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("(?=\\pLu)");
我尝试了REGAUS(F2;"(?=\\pUpper)";"\n";"g")
,但我得到了502
,因为正则表达式有问题。
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)。
【讨论】:
以上是关于将同一个单词中混合大小写分成两行的主要内容,如果未能解决你的问题,请参考以下文章