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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2023, 12:00   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию Сплит между [ и ] во всём файле

здравствуйте как сделать чисто по сабжу я в курсе
Код:
vFindText = re.findall(r'\[(.+?)\]', text_noJS, flags = re.U) # сплит между [ и ] во всём файле
но в массив могут попасть данные со знаком ";":
"большую меру;на что-на?"
как указать, что если есть ";" то брать в массив всё, что ДО неё
"большую меру" - брать
";на что-на?" - НЕ брать
спасибо
Ципихович Эндрю на форуме Ответить с цитированием
Старый 19.10.2023, 19:37   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
r'\[(.+?)(?:;.+?)?\]'
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 19.10.2023, 19:44   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

спасибо, то что нужно
Ципихович Эндрю на форуме Ответить с цитированием
Старый 31.10.2023, 17:16   #4
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

подскажите ещё сделал по аналогии
Код:
# сплит между [ и ] во всём файле с удалением текста до знака вопроса - "\?"
lst_replace_ = re.findall(r'\[(.+?)(?:\?.+?)?\]', text_noJS, flags=re.U)
и извлеклось:
этюдному ящичку;к чему-к - правильно
этюдном ящичке;в чем-в? - НЕ правильно, знак «?» НЕ должен был извлечься
в чём я ошибся, как подправить?
Ципихович Эндрю на форуме Ответить с цитированием
Старый 31.10.2023, 19:25   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Если знак вопроса максимум один и перед самой квадратной скобкой, то:
Код:
r'\[(.+?)\??\]'
На regex101 можно вбить регулярку и тестовый текст - сайт выдаст пояснение про регулярку и покажет совпадения в тексте.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 31.10.2023 в 19:30.
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как удалить пробелы в файле между двумя словами тегами? vitalyoleg Общие вопросы C/C++ 1 25.10.2018 17:39
Открытие формы в сплит контейнере Tikoni Windows Forms 2 06.06.2018 20:08
Расстояние между заданными словами в файле. (с++) Evateli Помощь студентам 2 11.05.2013 21:47
Условие поиск в сплит-строке Лубышев SQL, базы данных 11 22.01.2013 14:56
idHTTP - всё обо всём... KiDoki Работа с сетью в Delphi 2 14.11.2008 11:31