|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
Добрый день. Встала задача проверить входную строку на наличие некоторых запрещенных слов (в данном случае ругательных - вульгаризмов), выброситьих из строки и, при этом, сохранить иходный регистр символов. Пример Исходная строка: " На виноградниках Шабли маркизы дам своих ... пленяли. Вначали им стихи читали, а вскоре - все же отъебли ". После парсинга и чистки должно получиться так: " На виноградниках Шабли маркизы дам своих ... пленяли. Вначале им стихи читали, а вскоре - все же ". Массив-набор запрещенных слов имеется. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:27 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
zalsily, RegEx ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:33 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
:) Так я и прошу помощи с этим ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:34 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
zalsilyМассив-набор запрещенных слов имеется. Скорее массив-набор запрещенных корней + Regex ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:35 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
PallariszalsilyМассив-набор запрещенных слов имеется. Скорее массив-набор запрещенных корней + Regex"в порт зашли два кора..." - результат работы такого алгоритма. нужно либо делать огромный словарь со всеми словоформами, либо осваивать стемминг. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:40 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
Так дело в том, что запрещенное слово в массиве запрещенных слов записано так: "запрещенное". А в исходной сроке оно может быть записано как "запрЕщеНное" и в таком случае соответствие не будет обнаружено и ругательство не будет выброшено из исходного текста. Я привожу исходную строку к нижнему регистру и тогда все ругательства отлично удаляются. Но, в таком случае, теряется исходный регистр слов названий, имен личных, аббревиатур и пр. Можно, конечно, запоминать исходную строку, создать копию в нижнем регистре, выбросить все из копии, распарсить по словам исходную и новую копию, привести к нижнему регистру копию и сравнить с последней, а потом одинаковые слова привести обратно к изначальному регистру и ... Но это жопа. Должно быть более быстрое и простое решение. В регулярках ноль с плюсом я. Мож кто подскажет выражение?! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:41 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
Antonariy, нет-нет! Части слова не в счет, - только целые отдельные слова, разделенные между собой пробелом, дефисом, тире. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:43 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
zalsily, Как-то так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:44 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
zalsilyТак дело в том, что запрещенное слово в массиве запрещенных слов записано так: "запрещенное".Regex.Replace может игнорировать регистр ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:47 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
zalsily А в исходной сроке оно может быть записано как "запрЕщеНное" и в таком случае соответствие не будет обнаружено и ругательство не будет выброшено из исходного текста.это вообще не проблема, даже регистр менять не надо. zalsilyAntonariy, нет-нет! Части слова не в счет, - только целые отдельные слова, разделенные между собой пробелом, дефисом, тире.каждое слово рождает десятки словоформ с помощью суффиксов и предлогов, кто будет словарь составлять? короче, вот стеммер, он достаточно эффективно извлекает основу. слова "отъебли" и "мебель" он не перепутает: http://pastebin.com/r8KjeMWB ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:52 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
Axeleronzalsily, Как-то так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
не работает правильно! Этот метод убирает такие символы как "{", "}" и не удаляет запрещенные слова из массива если те прописаны в тексте типа "заПрещеннОе". В массиве слово подано как "запрещенное" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:56 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
zalsilyне работает правильно! Этот метод убирает такие символы как "{", "}" и не удаляет запрещенные слова из массива если те прописаны в тексте типа "заПрещеннОе". В массиве слово подано как "запрещенное" Ну тогда вот так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 13:03 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, спасибо! Это уже почти самое оно!!! Очень помогли!!! Всем хорошего дня и приятного вечера! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 13:17 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
Вообще, если по взрослому делать, нужно посмотреть вот сюда: http://habrahabr.ru/post/114997/ ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 14:19 |
|
Валидация строки на присутствие слов
|
|||
---|---|---|---|
#18+
zalsilyТак дело в том, что запрещенное слово в массиве запрещенных слов записано так: "запрещенное". А в исходной сроке оно может быть записано как "запрЕщеНное" и в таком случае соответствие не будет обнаружено и ругательство не будет выброшено из исходного текста. Блин, детский сад... В дотнете работа со строками поставлена на ура. Смотреть в MSDN до просветления StringComparison.*IgnoreCase, StringComparer.*IgnoreCase, а также RegexOptions.IgnoreCase. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 15:40 |
|
|
start [/forum/topic.php?fid=20&msg=39032220&tid=1401276]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
5ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 154ms |
0 / 0 |