如何从匹配字符串中获取多个子字符串?

How to get multiple substrings from a matching string?

我正在尝试从字符串中提取一些文本,我需要在其中使用二级匹配。

我有一个像

这样的字符串
  s="Text_1 is abc: and Text_2 is def: also Text_3 is ghi:"

结果应该是 Text_x 内容的列表,例如

  result = ['abc', 'def', 'ghi']

有没有办法使用方括号或类似于

的单个match/search来使用它
 x= re.compile('Text_\d (\w+)\:')
 l = x.match(s)

我无法正确解决它。

我正在使用 python 3.9

我们可以在这里尝试使用 re.findall

s = "Text_1 is abc: and Text_2 is def: also Text_3 is ghi:"
matches = re.findall(r'\bText_\d+ is (\w+(?: \w+)*):', s)
print(matches)  # ['abc', 'def', 'ghi']