gpt4 book ai didi

string - 根据可变字符串长度删除可变字符位置右侧的所有文本

转载 作者:行者123 更新时间:2023-12-02 09:13:51 25 4
gpt4 key购买 nike

问题:我有一列,其中每个单元格都有不同的长度和不同的句子结构。如果任何单元格的长度超过 1000 个字符,请查找字符串中第 998 个字符的右侧首次出现的 [句号]、[逗号]、[分号]、[冒号]并将该字符替换为 [3 个句点](应用程序替代省略号)。最后截断 3 个句点后的所有剩余文本。

示例-

当前数据:[[前 900 个字符]]。 Visual Basic for Applications 支持构建用户定义函数 (UDF)、自动化流程以及通过动态链接库 (DLL) 访问 Windows API 和其他低级功能。

预期输出:[[前 900 个字符]]。 Visual Basic for Applications 支持构建用户定义函数 (UDF)...

在“当前数据”中,长度 = 1098 个字符。第 998 个字符是“procesS”中的第二个 's'。右侧第一个出现的所需标点符号是 (UDF) 后的逗号。将其替换为 [3 个句点],并删除字符串的其余部分。

目前这就是我所拥有的。我还没有弄清楚如何包含各种条件来查找或如何在 3 个句点之后截断文本。此外,可能有一种更简洁的方法来完成这一切。

For i = 2 To LR


If Len(Cells(i, 2).Value) > 1000 Then

Cells(i, 2).Value = Left(Cells(i, 2), 998)
Cells(i, 2).Value = StrReverse(Replace(StrReverse(Cells(i, 2).Value), StrReverse("."), StrReverse("..."), Count:=1))


End If
Next i

希望我已经提供了大量有关我正在尝试的信息。

最佳答案

尝试此方法检查任何标点符号 的第一次出现。 , ; : 998 个字符后。

Dim teststring As String, firstcut As String, extension As String

teststring = String$(1000, "a") & _
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. " & _
"In malesuada non enim nec posuere. Praesent placerat nulla enim, " & _
"at porta justo pharetra ac."

If Len(teststring) > 999 Then
firstcut = Left$(teststring, 998)

extension = Right(teststring, Len(teststring) - 998)
extension = Replace(Replace(Replace(extension, ",", "."), ";", "."), ":", ".")
extension = Left$(extension, InStr(1, extension, ".") - 1) & "..."

Debug.Print extension
End If

关于string - 根据可变字符串长度删除可变字符位置右侧的所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49142570/

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