powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Удалить пробелы после кавычки (скобки)
11 сообщений из 11, страница 1 из 1
Удалить пробелы после кавычки (скобки)
    #39989298
edward_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, джентельмены!
Возник вопрос такого плана.
Некоторые пользователи после и перед знаком кавычек (скобок) ставят, а некоторые не ставят символ пробела.
Естественно, что при строковом сравнении значений полей с кавычками и без, будут разными.
Хотелось бы избавиться от такой головной боли в своей БД.
Решение на вскидку - по символьный перебор строки и сравнение символа кавычки и последующего пробела. Потом его удаление.
Возможно, есть более элегантный способ?
Т.е. имеется строка
Это тестовая " строка"которую "надо преобразовать.
Должно быть на выходе
Это тестовая "строка" которую надо преобразовать.
Заранее благодарен за конструктивные ответы.
...
Рейтинг: 0 / 0
Удалить пробелы после кавычки (скобки)
    #39989319
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
SELECT REPLACE(REPLACE(строка,'" ','"'),' "','"');
...
Рейтинг: 0 / 0
Удалить пробелы после кавычки (скобки)
    #39989326
edward_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Это первое, что я попробовал. Но вариант с REPLACE уничтожит правильные пробелы
Например: Это тестовая строка " для которой " мы хотим избавиться от пробелов
превратится в
Это тестовая строка"для которой"мы хотим избавиться от пробелов
что явно не то, что хочется ...
...
Рейтинг: 0 / 0
Удалить пробелы после кавычки (скобки)
    #39989328
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как отличать "правильные" от "неправильных"?
...
Рейтинг: 0 / 0
Удалить пробелы после кавычки (скобки)
    #39989332
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
Как отличать "правильные" от "неправильных"?
Да легко -- просто нужен парсер, который будет отличать открывающую кавычку от закрывающей.
...
Рейтинг: 0 / 0
Удалить пробелы после кавычки (скобки)
    #39989335
edward_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правильные - это те, до и после кавычек идет пробел ...
Вот насчет парсера я и задумался. У кого-нибудь есть аналогичные разработки?
Не поделитесь текстом?
...
Рейтинг: 0 / 0
Удалить пробелы после кавычки (скобки)
    #39989344
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edward_sh
Правильные - это те, до и после кавычек идет пробел ...
Вот насчет парсера я и задумался. У кого-нибудь есть аналогичные разработки?
Не поделитесь текстом?
В целом, это путь в никуда. Завтра ваши пользователи начнут писать "ё" вместо "е", использовать «» вместо "" или комбинировать, вообще слова не пробелом разделять... Вы для всего этого будете парсер каждый раз писать?

Для поиска по тексту есть разные подходы, которые обычно сводятся к поиску по словам или их формам, для этого есть как стандартные решения, так и самописные.
...
Рейтинг: 0 / 0
Удалить пробелы после кавычки (скобки)
    #39989348
edward_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С кавычками и их разновидностью я вроде поборолся.
Проблемы е и ё - это проблемы ввода пользователя.
Мне нужно, что бы одна и та же строка (с пробелом внутри кавычек или без) не появлялась в базе
Согласитесь, что
обучение по профессии "Пожарный" и обучение по профессии " Пожарный" - это несколько разные строки
и как Вы предлагаете искать дубли в БД?
...
Рейтинг: 0 / 0
Удалить пробелы после кавычки (скобки)
    #39989353
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edward_sh
С кавычками и их разновидностью я вроде поборолся.
Проблемы е и ё - это проблемы ввода пользователя.
Ага. Проблемы ввода. Я посмотрю, как вы будете объяснять вашим пользователям, что "самолет" и "самолёт" -- это разные вещи.

edward_sh
Мне нужно, что бы одна и та же строка (с пробелом внутри кавычек или без) не появлялась в базе
Согласитесь, что
обучение по профессии "Пожарный" и обучение по профессии " Пожарный" - это несколько разные строки
и как Вы предлагаете искать дубли в БД?
Расскажите, как надо расставить или убрать пробелы, чтобы следующие строки считались одинаковыми?

обучение по профессии "" Пожарный"
обучение по профессии "Пожарный"
обучение по профессии "Пожарный
...
Рейтинг: 0 / 0
Удалить пробелы после кавычки (скобки)
    #39989363
edward_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Сергей Алексеевич!
Подсказали о косяке, о котором я забыл - о двойных кавычках """" :)
Принцип довольно простой, есть только одна кавычка - режем ее. Это проблемы ввода - проблемы пользователя.
Пробел после кавычки - убиваем пробел. Пробел перед кавычкой - убиваем пробел.
Будет в слове е или ё - не мои проблемы - проблемы пользовательского ввода.
Я не пытаюсь отловить все косяки ввода пользователем данных - это невозможно.
Но частые косяки, которые я могу исправить сам ... Почему бы и нет?
...
Рейтинг: 0 / 0
Удалить пробелы после кавычки (скобки)
    #39989397
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edward_sh,

Я бы советовал написать свой CLR нормализатор или универсально пакет CLR функций регулярных выражений.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Удалить пробелы после кавычки (скобки)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]