Регулярное выражение для сопоставления нескольких вхождений шаблона и игнорирования промежуточного содержимого

#python #regex

#python #регулярное выражение

Вопрос:

Я пытаюсь сопоставить несколько вхождений шаблона в строке и игнорировать промежуточное содержимое.

Например, в строке ниже:

"35264208011:5:1044512:0.1078, 1044512:6:3526415811:0.0444, 699905011:6:3526420011:0.0544”

Я хочу получить все вхождения 1044512 и их сопровождаемую скорость (т. Е. Значение с десятичным числом)

Мой желаемый результат будет: "1044512:0.1078, 1044512:0.0444"

Я пробовал ‘1044512:(.*?)0000’ но, похоже, упускается что-то существенное. Любая помощь приветствуется.

Комментарии:

1. Вы решили проблему? Вам нужна помощь в этом?

Ответ №1:

попробуйте это регулярное выражение :

 (1044512)(?:.*?)(0.d*)
  

в вашем примере это даст вам это совпадение :

 match 1 : 1044512:0.1078
     group 1 : 1044512
     group 2 : 0.1078
match 2 : 1044512:6:3526415811:0.0444
     group 1 : 1044512
     group 2 : 0.0444
  

тогда все, что вам нужно сделать, это объединить группу 1 с группой 2 следующим образом :

 $1:$2
  

это демонстрация