Mam dane wyjściowe polecenia w formie tabelarycznej. Przetwarzam dane wyjściowe z pliku wynikowego i zapisuję je w łańcuchu. Każdy element w jednym wierszu jest oddzielony jednym lub większą liczbą znaków białych znaków, dlatego używam wyrażeń regularnych, aby dopasować 1 lub więcej spacji i podzielić je. Jednak pomiędzy każdym elementem wstawia się spację:Podziel ciąg na podstawie wyrażenia regularnego
>>> str1="a b c d" # spaces are irregular
>>> str1
'a b c d'
>>> str2=re.split("()+", str1)
>>> str2
['a', ' ', 'b', ' ', 'c', ' ', 'd'] # 1 space element between!!!
Czy istnieje lepszy sposób na zrobienie tego?
Po każdym podzieleniu str2
jest dołączany do listy.
Zignorowałem to pytanie. Powodem jest to, że chociaż samo pytanie jest istotne, dany przykład nie jest wystarczająco trudny, aby naprawdę wymagać rozwiązania. Wyrażenie regularne będzie wymagane, jeśli masz na przykład bloki słów, bloki liczb i chcesz je rozdzielić na różne zmienne. – erikbwork
@erikbwork Chciałem usunąć niechciany element z przestrzeni w wynikowym ciągu '' str2''' – user2763554
Tak i możesz to osiągnąć używając po prostu 'str1.split()'. Nie ma potrzeby stosowania wyrażeń regularnych. – erikbwork