Взять с начала строки до определенного места. findall()

Данный код находит значения между строк 1 и 3900. Мне же нужно собрать айпишники без порта, как это правильно сделать?

x="""
10.0.0.4:3900Test1
10.40.0.5:3900Test2
10.20.0.5:3900Test3
"""
print ([j for i,j in re.findall(r"( :3900 | 1 )\s*(.*?)\s*(?!\1)(? :1 | :3900 )",x)])

Ответы (2 шт):

Автор решения: Newman
s='10.0.0.4:3900Test1'
s.split(':')
['10.0.0.4', '3900Test1']
→ Ссылка
Автор решения: Incover
x="""
10.0.0.4:3900Test1
10.0.0.5:3900Test2
10.0.0.5:3900Test3
"""
res = ([j for i,j in re.findall(r"(:3900|\n)\s*(.*?)\s*(?!\1)(?: \n|:3900)",x)])
for elem in res:
    print(elem)

Нужно было искать новую строку \n.

→ Ссылка