$string = "MaryGoesToSchool";
$expectedoutput = "Mary Goes To School";
9
A
Odpowiedz
17
Co o coś takiego:
$string = "MaryGoesToSchool";
$spaced = preg_replace('/([A-Z])/', ' $1', $string);
var_dump($spaced);
to:
- dopasowuje wielkie litery
- i zastąpić każdą z nich spacją, a co zostało dopasowane
Który daje to wyjście:
string ' Mary Goes To School' (length=20)
a następnie można użyć:
$trimmed = trim($spaced);
var_dump($trimmed);
Aby usunąć przestrzeń na początku, który dostaje:
string 'Mary Goes To School' (length=19)
6
Spróbuj tego:
$expectedoutput = preg_replace('/(\p{Ll})(\p{Lu})/u', '\1 \2', $string);
W \p{…}
notacje opisują znaki poprzez Unicode character properties; \p{Ll}
oznacza małą literę i \p{Lu}
wielką literę.
Innym podejściem byłoby to:
$expectedoutput = preg_replace('/\p{Lu}(?<=\p{L}\p{Lu})/u', ' \0', $string);
Tutaj każda wielka litera jest poprzedzany tylko z miejsca, jeśli jest poprzedzone innym liście. Więc zadziała MaryHasACat
.
1
Oto non-regex rozwiązanie, które ja użyj do sformatowania łańcucha camelCase do bardziej czytelnego formatu:
<?php
function formatCamelCase($string) {
$output = "";
foreach(str_split($string) as $char) {
strtoupper($char) == $char and $output and $output .= " ";
$output .= $char;
}
return $output;
}
echo formatCamelCase("MaryGoesToSchool"); // Mary Goes To School
echo formatCamelCase("MaryHasACat"); // Mary Has A Cat
?>
+0
Downvoter - dlaczego? – alexn
0
Spróbuj:
$string = 'MaryGoesToSchool';
$nStr = preg_replace_callback('/[A-Z]/', function($matches){
return $matches[0] = ' ' . ucfirst($matches[0]);
}, $string);
echo trim($nStr);
Powiązane problemy
- 1. PHP: Konwertuj wielkie litery na wielkie litery na małe litery
- 2. Konwersja wszystkie wielkie litery init czapki
- 3. .ToTitleCase nie działa na wszystkie wielkie litery
- 4. Jak znaleźć wszystkie wielkie litery w tabeli MySQL?
- 5. Wielkie litery mvc Model vs małe litery
- 6. H2 Polecenie "runscript" zamienia wszystkie nazwy tabel na wielkie litery.
- 7. Rozbija łańcuch na wielkie litery?
- 8. Ustaw wielkie litery dla TextView
- 9. Jak przekonwertować wielkie litery na małe litery w Notatniku ++
- 10. Jak zmienić ciąg na wielkie litery
- 11. Sprawdź, czy ciąg mają wielkie litery, małe litery i numer
- 12. Wielkie litery filtru z opcjami-ng
- 13. zmiana nazwy tabeli na wielkie litery
- 14. Jak zmienić wszystkie wartości wejściowe na wielkie za pomocą Jquery?
- 15. Jak przekonwertować ciąg znaków UTF-8 na wielkie litery?
- 16. Jak przekonwertować ciąg na wielkie/małe litery w Jinja2?
- 17. Jak sprawić, by emacs akceptował kodowanie UTF-8 (wielkie litery)?
- 18. Przekształcanie części łańcucha w wielkie litery w CMake
- 19. Matlab - jak zamienić wszystkie znaki specjalne w wektorze?
- 20. Konwersja całą gamę na wielkie litery bez pętli przez wszystkie komórki
- 21. Uwierzytelnianie adresu e-mail (kropki i wielkie litery)
- 22. jak zmienić wielkość litery pierwszej litery?
- 23. Jak zamapować wszystkie litery w NSString
- 24. JavaScript do konwersji małych liter na wielkie litery
- 25. Atrybut uppercase, który konwertuje dane wejściowe na wielkie litery
- 26. jQuery: contains() selektor wielkie i małe litery problem
- 27. Dlaczego wielkie litery występują przed małymi literami w tabeli ASCII?
- 28. Regex zastępuje wielkie litery małymi literami w PhpStorm
- 29. Czy wielkie litery miały znaczenie w adresach e-mail?
- 30. Co to są wielkie i małe litery nazwy metody ruby?
Jak można się spodziewać wyjścia dla "MaryHasACat"? –