Wpis z mikrobloga

mam plik txt w którym znajduje się tekst, który zawiera jakieś próby. Każda próba oddzielona jest w taki sposób:
(f'\n\n\n ---------------------------{test}------------------------------- \n\n\n')
Gdzie test to jakiś losowy tekst, każdy znak możliwy. Znaków '-' jest po 26 na stronę. Ułożyłem coś takiego:
re.split('^\s-{26}.+-{26}\s$', data_one)
Ale nie działa :/ Jaki regex by tutaj się lepiej sprawdził?

#python
  • 10
'^\s-{26}.+-{26}\s$'


@Bocislaw: > a= "f'\n\n\n ---------------------------{test}------------------------------- \n\n\n'"

pattern = '(\s-{26}.+-{26}\s)'

re.split('(\s-{26}.+-{26}\s)', f"{a}duppa{a}duppa{a}")

daje mi dziwnie zesplitwane

["f'\n\n\n", ' ---------------------------{test}------------------------------- ', "\n\n\n'duppaf'\n\n\n", ' ---------------------------{test}------------------------------- ', "\n\n\n'duppaf'\n\n\n", ' ---------------------------{test}------------------------------- ', "\n\n\n'"]
@Bocislaw: Wczytujesz tekst linijka po linijce czy cały od razu? Wygląda mi na to, że cały od razu i chcesz go podzielić regexem. Jeśli plik jest długi to trzeba go całego załadować do pamięci. Wydaje mi się, że nienajlepsze rozwiązanie.

Wyszukałem odpowiedź na stackoverflow:
https://stackoverflow.com/a/54373630/175911

Zamiast val==sep robisz sep_re.match(val).
Potrzebujesz tego tekstu z nawiasów klamrowych?

sep_re = r'-+\{\w+\}-+'