|
Разбор строки
|
|||
---|---|---|---|
#18+
Добрый день, пытаюсь найти алгоритм для парсинга строки на части, к примеру есть ряд строк: текст 123 123 текст2-2ю.2 текст(123) 123 123 ("текст") 123".123' 123",123' 123" 123') "текст" 123 по результату разбора хотелось бы получить список слов(текст и числа + текст+числа) а также блоки заключенные в скобки( "(","[","{","<" и соответственно замыкающие ), если не рассматривать блок то алгоритм прост, режем все по "пробелу" или любому другому спец символу, но как правильно выделять блоки, дело в том что в исходной строке символы "двойная кавычка" и "одинарная кавычка" по контексту могут и не быть началом-концом блока, а рассматриваться как посвиксы (дюймы и секунды), со скобками тоже беда есть шанс что части их не хватает(ошибки). В идеале хотелось бы разработать алгоритм который мог бы работать с искаженными данными и сложными вложенными блоками(не разбираем что в блоке, но надо найти верное окончание блока, со скобкам понятно "("-открытие блока, ")"-закрытие блока, а вот с теми же кавычками беда). Заранее спасибо за советы. ЗЫ шаблона для текстов нет, есть куча данных написанных как бог на душу положил(в основном в разном порядке /текст 123/ и /123 текст/ с небольшими отклонениями), пытаюсь привести все к порядку, проанализировать и выработать шаблоны, данных много ручной анализ не вариант. ЗЫЫ задача тут для прокачки навыков. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 23:44 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
сначала разбираете то, что 100% разбирается (нет в строке кавычек, например, или кавычек всегда чётное число) потом изучаете то, что остаётся, и изобретаете алгоритм под них например, если 1 кавычка, то делаем так, если дефис, то так ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2020, 00:39 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
Mixon, Ты когда формулирует задачу - поставь ее максимально сухо. Без этих "хотелось бы". А то и отвечают так. Кому хочется. Кому и нет. Напиши от TDD. Чтоб были модульные тесты. А реализацию тебе даст форум. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2020, 20:35 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
А чего там реализовывать? Раббиш ин - раббиш оут Ну и как это нужно разобрать 123 ("текст") 123".123' 123",123' 123" 123') "текст" 123 123 "текст") 123".123' 123",123' 123" 123') "текст" 123 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2020, 22:32 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
mayton А реализацию тебе даст форум. Не даст :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2020, 23:25 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
hVostt mayton А реализацию тебе даст форум. Не даст :) Надо уметь правильно преподносить темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2020, 23:45 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Ну и как это нужно разобрать 123 ("текст") 123".123' 123",123' 123" 123') "текст" 123? Разобрать-то не проблема. Можно поиграть в графематический анализ: режем посимвольно с определением типа, напр. №символтип0LWALLWALL11цифра12цифра33цифра4пробелпунктуация5(пунктуация6"пунктуация………573цифра58RWALLWALL Проблема это интерпретировать. Будем надеяться, у автора уже созрела грамматика. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2020, 00:05 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
mayton Надо уметь правильно преподносить темы. Ну ток если вбросить типа "такое не реализуемо и вы, старые пердуны, это не осилите" ) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2020, 01:10 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
hVostt mayton Надо уметь правильно преподносить темы. Ну ток если вбросить типа "такое не реализуемо и вы, старые пердуны, это не осилите" ) Зачем? Пишется тест-кейс. Все тесты - красного цвета. Надо сделать чтоб они стали зеленые. Тело тестов трогать нельзя. Нужно добавить реализацию. Забавная игра получается. Всем - весело. И на собеседованиях такое иногда дают задачей. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2020, 01:18 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
День добрый, спасибо за участие :) Leonid KudryavtsevА чего там реализовывать? Раббиш ин - раббиш оут Ну и как это нужно разобрать 123 ("текст") 123".123' 123",123' 123" 123') "текст" 123 123 "текст") 123".123' 123",123' 123" 123') "текст" 123 ? не совсем так, мой вариант: 123 ("текст") <- вложенный блок 123".123' <- вариант с дюймами и секундами (возможно) 123",123' <- вариант с дюймами и секундами (возможно) 123" <- вариант с дюймами и секундами (возможно) 123') "текст" 123 <-вот тут все сложно ибо вариант данных заведомо с ошибкой ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2020, 08:48 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
Еще одно замечание, коллеги мне рассказывали. что в русском языке вполне допистимы слкдующие варианты: текст "конфета "Красивая" текст "текст текст" ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2020, 08:50 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
Термин "возможно" - удорожает стоимость разработки этого парсерса на порядки ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2020, 10:44 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
Mixon Еще одно замечание, коллеги мне рассказывали. что в русском языке вполне допистимы слкдующие варианты: текст "конфета "Красивая" текст "текст текст" Коллеги еще и не то расскажут :) Приведите реальный пример как входных данных, так и разбора. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2020, 20:05 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
Mixon коллеги мне рассказывали. что в русском языке вполне допистимы : текст "конфета "Красивая" Сейчас сколько прогеров, столько и вариантов. Систематизируйте основные варианты. Или варианты ошибок. Кому кроме вас знать? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2020, 21:07 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
Автор так и не понял что мы просим expectations. Что должно быть на выходе при известном входе? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2020, 21:25 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
А чё регулярки-то до сих пор никто не предложил? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2020, 01:15 |
|
|
start [/forum/topic.php?fid=16&msg=40028591&tid=1339707]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 258ms |
total: | 518ms |
0 / 0 |