Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2024, 11:06   #21
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,167
По умолчанию

увы в ответе выдало:
4. 1.3.2 "Многопутная железная дорога"
5. 1.4.1.1.4.6.6
6. 1.4.1..1.6
7. 1.5 "Пересечение с трамвайной линией"
в исходном документе было:
1.4.1 - 1.4.6 "Приближение к железнодорожному переезду" как в моём сообщении 19
как подправить?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 13.08.2024, 12:40   #22
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

А вы новый pattern используете?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 13.08.2024, 13:00   #23
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,167
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
А вы новый pattern используете?
да нет, тот, что вы предоставили:
Код:
    # шаблон имеет 7 групп захвата т. е. скобки ()
    pattern = r'(([1-9](\.\d+)+)(( - |, )([1-9](\.\d+)+))?\s".+?")'
    matches = re.findall(pattern, text)
    res = []
    for m, match in enumerate(matches, 1):
        mat = match[0] # 0 - означает вся строка, соответствующая шаблону
        # print(f"{m}. {mat}")
        if match[4]:
            res.append(match[1] + '.' + match[2] + match[6])
            res.append(match[1] + '.' + match[5] + match[6])
        elif match[3]:
            res.extend(match[1] + '.' + str(i) + match[6] for i in range(int(match[2]), int(match[5]) + 1))
        else:
            res.append(match[0])
Ципихович Эндрю вне форума Ответить с цитированием
Старый 13.08.2024, 13:16   #24
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

В 20 сообщении используется другой pattern (отличающийся от предыдущих).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 13.08.2024, 13:18   #25
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,167
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
В 20 сообщении используется другой pattern (отличающийся от предыдущих).
ого, слона то я и не заметил, сорри
Ципихович Эндрю вне форума Ответить с цитированием
Старый 15.08.2024, 08:25   #26
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,167
По умолчанию

BDA, извините вовремя не внёс правки, сейчас вернулся и не сориентируюсь, в сообщении 9 строка
Код:
print(f"Таблица {table_num} подходит")
после неё у меня в данный момент:
Код:
result = list(OrderedDict.fromkeys('='.join((num, name, link)) for num, name, link in zip(nums, names, links)))
а этот цикл:
Код:
    for img, i, j in imgs:
        if i != max_i:
            print(texts[(i, j)] + '=' + texts[(max_i, j)] + '=' + img)
        else:
            # исключение, описание "убежало" в следующую таблицу
            print(texts[(i, j)] + '=НЕТ ОПИСАНИЯ=' + img)
так ставить:
Код:
print(f"Таблица {table_num} подходит")
    for img, i, j in imgs:
        if i != max_i:
            print(texts[(i, j)] + '=' + texts[(max_i, j)] + '=' + img)
        else:
            # исключение, описание "убежало" в следующую таблицу
            print(texts[(i, j)] + '=НЕТ ОПИСАНИЯ=' + img)
result = list(OrderedDict.fromkeys('='.join((num, name, link)) for num, name, link in zip(nums, names, links)))
??
Ципихович Эндрю вне форума Ответить с цитированием
Старый 16.08.2024, 02:55   #27
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

OrderedDict не нужен. В предыдущем коде он использовался для удаления нежелательных дубликатов. В 9 сообщении код приведен целиком, его не нужно объединять с кодом из более ранних сообщений.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 17.08.2024, 18:42   #28
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,167
По умолчанию

BDA спасибо за помощь, вывод такой, извлечь данные в данном случае названия дорожных знаков с одного документа, извлечь с другого документа, без проблем, а потом чтобы это сошлось - фиг вам граждане от законодателей, начиная от различий :
"с" и "со" - кто то скажет одна буква, забей
дальше больше
слово выпадает "зоны"
дальше ещё больше
остаётся только уповать что сделают наши слуги тютелька в тютельку, во всяком случае грозились, такие дела.....
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как спарсить данные с онлайн словаря в excel? Xillin Microsoft Office Excel 4 22.08.2017 04:42
Как спарсить NIKOLAYY2 Общие вопросы Delphi 13 29.03.2015 16:06
Спарсить данные из тега XML FleXik Общие вопросы Delphi 8 19.10.2014 02:39
Спарсить данные с кукисов snip4ik Работа с сетью в Delphi 3 05.03.2013 21:34
Спарсить строку (скопировать до и после пробела данные) sxcine Помощь студентам 3 10.11.2010 19:22