gpt4 book ai didi

regex - 在 Sheets 单元格内包装长行

转载 作者:行者123 更新时间:2023-12-04 14:05:06 25 4
gpt4 key购买 nike

所以我在一个单元格中有一些长行,我想在第 180 个字符之前的最后一个空格之前强制换行。

即字符串 [170-190] 是:

test foo bar baz band

由于第 180 个字符是 bar 中的 a,我希望它变成

test foo\n bar baz band

类似于this question中的要求,但使用表格的内置函数而不是 Python/Ruby。

到目前为止的死胡同

字符串方法

网上搜索,我came across this post , 并推导它找到 180 之前的最后一个空格,并只保留 left() 的内容:

=left(B5,FIND("👾",SUBSTITUTE(LEFT(B5,180),"","👾",LEN(LEFT(B5,180))-LEN(SUBSTITUTE(LEFT(B5 ,180),"","))),1)-1)

我想象要让它在每行中运行多次将需要指数级的复杂性爆炸或自定义函数。

正则表达式替换

我正在研究 regexreplace,因为我希望根据需要进行多次替换(单行可能需要换行 2 次以上)。

玩 regex101.com,我可以用 ^\n{180} 找到第 180 个非换行符,但我找不到任何解释如何捕获该行的内容字符只到前面的空格。

最佳答案

试试这个:

=REGEXREPLACE(B5,"(.{180}) ",CONCAT("$1",char(10)))

它计算 180 个字符(用第 1 组捕获)后跟一个空格,并将其替换为与换行符连接的第 1 组内容 (char(10))。

编辑:如果您需要严格匹配少于 180 个字符,那么您可以使用:

=REGEXREPLACE(B5,"(\b[^\n]{0,180}) ",CONCAT("$1",char(10)))

编辑:收紧范围以不在短行后添加换行符

=REGEXREPLACE(B5,"(\b[^\n]{150,177}) ",CONCAT("$1",char(10)))

关于regex - 在 Sheets 单元格内包装长行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68835318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com