Недавно я задал вопрос, как извлекать слова из строки перед числом, чтобы помочь мне отсортировать некоторые данные. Это прекрасно работает до тех пор, пока не будет номера впереди, а только новая строка.
Это было сделано с помощью codenewb ie
import re
strings = '''
Hi my name is hazza 50 test test test
Hi hazza 60 test test test
hazza 50 test test test
'''
for s in strings.split('\n'):
if s != '':
print(re.findall('(.+?)\d',s)[0])
Это дает
Hi my name is hazza
Hi hazza
hazza
Что идеально, но не работает, если перед строкой нет номера, но есть новая строка
import re
strings = '''
Hi my name is hazza 50 test test test
Hi hazza 60 test test test
hazza 50 test test test
hazza hazza test test test
'''
for s in strings.split('\n'):
if s != '':
print(re.findall('(.+?)\d',s)[0])
Мне нужно, чтобы он дал мне
Hi my name is hazza
Hi hazza
hazza
hazza hazza
Я пробовал
import re
strings = '''
Hi my name is hazza 50 test test test
Hi hazza 60 test test test
hazza 50 test test test
hazza hazza
test test test
'''
while True:
try:
for s in strings.split('\n'):
if s != '':
print(re.findall('(.+?)\d',s)[0])
except IndexError:
print(s.split('/n'))
Но не совсем уверен, где вставить разрыв и есть ли лучший способ
Любая помощь будет принята с благодарностью
Изменить:
У меня есть эти жалы например,
Hi my name is hazza 50 test test test
Hi hazza 60 test test test
hazza 50 test test test
hazza hazza
test test test
Код, созданный codenewb ie, отлично работает для первых трех строк, но не для последней.
Мне нужно, чтобы последняя выглядела как
Hi my name is hazza
Hi hazza
hazza
hazza hazza