Я уже давно предлагал в regexsearch доделать возвращение в результат найденные группы.
Что касается регулярок, то на
https://regex101.com/ пишет где допущены ошибки. Тут же и регулярки можно тестить, покажет что найдено.
Цитата:
(?<=ck__[^c].{0,45})
Если вкратце, то в (?<=) нельзя использовать квантификаторы нефиксированной длины. Можно указывать точное количество символов .{45}, диапазон .{0,45} нельзя.
Цитата:
Пример задачи
Выполнить код в консоли python:
CODE:import re
match = re.findall(r'(?<=sections-block__).{0,45}?([+-]?\d+(?:\.\d+)?)(?=.{0,10}\/div>)',
r'line-list-dops-item-row-sections-block__right-kf ng-star-inserted^"> +1.9 </div><!+---><!-++-></div><!---+></div><div')
print(match[0] if match else 'Not found')
Примеры по-проще как использовать группы:
CODE:import re
match = re.findall(r'x = \d+, y = \d+', r'x = 123, y = 456')
print(match[0] if match else 'Not found')
Групп нет, вернёт: x = 123, y = 456
CODE:import re
match = re.findall(r'x = (\d+), y = (\d+)', r'x = 123, y = 456')
print(match[0] if match else 'Not found')
вернёт 2 группы ('123', '456' ), т. к. (\d+) в скобках
CODE:import re
match = re.findall(r'x = (?:\d+), y = (\d+)', r'x = 123, y = 456')
print(match[0] if match else 'Not found')
вернёт 456, т. к. (?:\d+) является незахватываемой группой.
Цитата:
Кто может переделать эти регулярки на такие же корректные для Python?
Если не разберётесь то скиньте пример текста, подправлю.