Удалить много экземпляров одного и того же символа (C #) - PullRequest
1 голос
/ 28 февраля 2012

Когда люди публикуют какой-то текст на моем сайте, они иногда вставляют длинную строку дефисов, звездочек или точек, как это

*********************************************************************

Это, к сожалению, разрушит макет на некоторых страницах результатов, и это отчасти бессмысленно (для меня).

Как мне справиться с этим? Может быть, регулярное выражение, которое уменьшит более чем X повторов одного и того же символа до 5. Если это так, то как ...

Regex regex = new Regex("[\\*\\._-]{5,}");
string goodstring = regex.Replace(badstring, "-----");

Но что, если пользователь подумал, что было весело написать aaaaaaaaaaaaaaaaaaaaaaaaaa, тогда мое регулярное выражение потерпит неудачу.

Вопрос в том. Как вы думаете, я должен справиться с этой проблемой, и если вы думаете, что я должен справиться с этим с помощью регулярного выражения, то как мне написать регулярное выражение, которое бы удаляло ненужные повторения любого символа (а не только *.-_ Как мой собственный регулярное выражение здесь)

Ответы [ 2 ]

6 голосов
/ 28 февраля 2012

Чтобы ответить на ваш вопрос о регулярном выражении:

как мне написать регулярное выражение, которое бы удаляло ненужные повторения любого символа

Вы можете использовать обратную ссылку, чтобы обнаружитьодин и тот же символ вводился более одного раза, например:

Regex regex = new Regex(@"(.)\1{4,}");

Однако основной вопрос вашего вопроса, по-видимому, таков:

Это, к сожалению, разрушит макет нанекоторые страницы результатов, и это отчасти бессмысленно (для меня).Как мне справиться с этим?

Вы должны использовать таблицы стилей, чтобы указать, что должно происходить, когда текст не помещается в его контейнер.Например, вы можете использовать свойство overflow , чтобы настроить скрытие или прокрутку содержимого при переполнении, вместо того, чтобы использовать поведение по умолчанию, при котором переполнение содержимого может перекрывать другие элементы на странице.

2 голосов
/ 28 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...