У меня есть список многорядных строк. Я хочу сопоставить первые строки этих строк, если они начинаются с переменного числа цифр, а НЕ сразу после точки.
Например, список может быть
list = ["42. blabla \n foo", "42 blabla \n foo", "422. blabla \n foo"]
и мой желаемый результат будет 42 blabla
.
Этот код
import re
list = ["42. blabla \n foo", "42 blabla \n foo", "422. blabla \n foo"]
regex_header = re.compile("^[0-9]+(?!\.).*\n")
for str in list:
print(re.findall(regex_header, str))
выходы
['42. blabla \n']
['42 blabla \n']
['422. blabla \n']
Этот работает только с двумя цифрами в начале строки:
import re
list = ["42. blabla \n foo", "42 blabla \n foo", "422. blabla \n foo"]
regex_header = re.compile("^[0-9]{2}(?!\.).*\n")
for str in list:
print(re.findall(regex_header, str))
Выход:
[]
['42 blabla \n']
['422. blabla \n']