![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 19.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Jestem na etapie poznawania regEpxów i mam problem z usunięciem znaku nowej linii. Chciałbym go zastąpić znakiem spacji. W stringu który przetwarzam udaje mi się zamienić znaki nowej linii, gdzie nowe linie zaczynają się od odstępów wyrażeniem /(\n[[:space:]]*)/ To działa. Jednak z jakiegoś powodu, gdy już "wyczyszczę" string - czyli pozostaną jedynie linia + znak nowej linii + nowa linia zaczynająca się znakiem od samego początku - nie udaje mi się zredukować znaków nowej linii do spacji. Próbowałem np /\n/ - zmiana na ' ', /\n$/, /[\n]/, (\n), (\n|$), (\n)$ i tego typu kombinacje. Nic nie wychodzi ; ( Dodam, że moim celem jest jak najskuteczniejsze zredukowanie niepotrzebnych znaków, tak by kod ważył jak najmniej. Nie musi być czytelny, jednak powinien się ładować jak najszybciej. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Zwykłe str_replace elementów "\r\n", "\n", "\r" na spacje Ci nie wystarczy?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 19.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie do konca, bo to tez nie działało.
Jednak już wiem dlaczego. Problem tkwił w tym, że podawałem tablicę dla preg_replace i /(\n[[:space:]]*)/ + właśnie "\n" jako argument. Skoro klasa [:space:] zawiera już \n, czego nie zauważyłem, do tego zamiast asteriksa trzeba wstawić +, by nie robiła się zadyma. Wystarczyło zrobić /([[:space:]]+)/ i jest git. Dzięki za pomoc mimo wszystko. pozdr. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.07.2025 - 02:53 |