Mam ciąg znaków, taki jak "foo\nbar"
, ale w zależności od platformy może to być "foo\n\rbar"
lub coś podobnego. Chcę zamienić nowe linie na ", "
. Czy istnieje ładne (php) wyrażenie regularne, które zrobi to za mnie?Co to jest regex między platformami, aby zastąpić zakończenie linii?
Odpowiedz
Spróbuj wyrażenia regularnego (?:\r\n|[\r\n])
:
preg_replace('/(?:\r\n|[\r\n])/', ', ', $str)
Czy nie działałaby str_replace(array("\n", "\r"), "", $string)
?
Zapomniałem, że str_replace zajmie tablice. Jednak twoja nie zastąpi przecinkami. Do tego myślę, że musi to być 'str_replace (array (" \ n "," \ r "), array (',', ''), $ string)' – sprugman
hmm ... nie, to nie dostanie tylko przypadek \ r. (Czy to istnieje?) – sprugman
po prostu zamień drugi argument na '", "' –
nie chcesz używać regex prostego zastąpienia takiego. Regularne funkcje zastępowania ciągów są zwykle znacznie szybsze. W przypadku podziału wiersza można użyć parametru OS aware constant PHP_EOL
, np.
str_replace(PHP_EOL, ', ', $someString);
W systemie Windows zastąpi to \r\n
. Na komputerze Mac \r
i we wszystkich innych systemach \n
.
To tylko aktualna maszyna, a co jeśli pochodzi z innej maszyny? –
@ Chacha102, jeśli drugi komputer uruchamia inny system operacyjny, wówczas PHP_EOL nie będzie działać. Mimo to uważam to za godną uwagi opcję. – Gordon
- 1. Co to dopasowanie regex `/^.*$/`?
- 2. Co to jest wysokość linii: 1?
- 3. Co to jest przełącznik linii poleceń-ruby?
- 4. Co to jest "wątek w linii"?
- 5. JS regex zastąpić numer
- 6. Przelotowe regex zastąpić
- 7. JavaScript zastąpić/regex
- 8. Regex zamień wiele nowych linii
- 9. Programowanie GUI między platformami z D
- 10. Regex, aby dopasować do czegoś, co nie jest określonym podciągiem
- 11. Co to jest CompileC?
- 12. Co to jest autooddzielanie?
- 13. Co to jest równoważne C# regex Java appendReplacement i appendTail
- 14. Co to jest poprawne wyrażenie RegEx dla kodów SWIFT?
- 15. PHP regex: co to jest "klasa na offset 0"?
- 16. Co to jest func_dict?
- 17. Co to jest _mh_execute_header?
- 18. Co to jest metoda inline?
- 19. Co to jest Serializable? Co to znaczy?
- 20. Co to jest odpowiednik Swift dla dispatch_group_create
- 21. Co to jest wątek jądra?
- 22. Co to jest wyrażenie regularne dla takiego adresu URL?
- 23. Co to jest odpowiednik preg_quote w PHP?
- 24. Co to jest XNoMonomorphismRestriction?
- 25. Co to jest "usuń to"?
- 26. Co to jest DNVM?
- 27. Regex - Dlaczego to. * (Kropka-gwiazda) nie pasuje do podziałów linii?
- 28. Co to jest _GLOBAL_OFFSET_TABLE?
- 29. Co to jest SOFEA?
- 30. Co to jest "__maybe_unused"?
+1, niezły. Dodałbym tylko '+' na końcu wyrażenia regularnego. –
Nice! Zawsze używałem '\ r? \ N | \ r' lub' \ n | \ r \ n? ', Ale myślę, że to jest bardziej przejrzyste. –