剥离前75个字符串并保持单词

时间:2011-01-28 16:03:26

标签: vb.net visual-studio-2008

我试图从各种字符串(句子/短语)中删除前75个字符,这似乎是正确的,但我需要确保现在的单词在此过程中被截断。这意味着如果75个字符是单词的一部分,则需要回退到单词或最近空格的开头。

我想把整个字符串剥离成单独的单词然后计算组合单词的长度并在我到达目标时停止但是如果它不是一个有效的句子只是一堆字符堵塞我该怎么办一起。我想过使用语法解析工具库并解析成令牌等,但这似乎过于复杂。

if text.length() > 75 then
    ctext = text.remove(text.length, 75) & "..."
endif

我把elipses放在最后但是使用上面的我也得到了错误:

有没有人有更好的建议。

1 个答案:

答案 0 :(得分:2)

如何简单地使用Regex.Replace()?

Regex.Replace(myString, "^.{0,75} ", "")

这将在字符串的开头和后面的空格中匹配最多75个字符。当然,你仍然需要考虑一开始就有77个非空格字符的字符串,但它已经让你走得很远了。

PowerShell测试:

PS Home:\> $w = 'This is a quite long text. It might contain some words. Furthermore, it exceeds 75 characters of length and therefore must be truncated.'
PS Home:\> $w.substring(0,75)
This is a quite long text. It might contain some words. Furthermore, it exc
PS Home:\> $w -replace '^.{0,75} '
exceeds 75 characters of length and therefore must be truncated.