зачистить первые 75 символов строки и сохранить слова - PullRequest
0 голосов
/ 28 января 2011

Я пытаюсь убрать первые 75 символов из различных строк (предложений / фраз), и это кажется правильным, но мне нужно убедиться, что слова «сейчас» усекаются в процессе. Это означает, что если символ 75 является частью слова, он должен вернуться к началу слова или к ближайшему пробелу.

Я думал о том, чтобы разделить всю строку на отдельные слова, а затем подсчитать длину объединения слов и остановки, когда я достигну цели, но что мне делать в случае, когда это недопустимое предложение, просто набор символов, заклинивших все вместе. Я думал об использовании библиотек инструментов грамматического разбора и разбора на токены и т. Д., Но это кажется слишком сложным.

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

Я ставлю elipses в конце, но, используя вышеизложенное, я также получаю ошибку:

есть ли у кого-нибудь лучшие предложения.

1 Ответ

2 голосов
/ 28 января 2011

Как насчет простого использования 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...