Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] i wyrażenia regularne
Forum PHP.pl > Forum > Przedszkole
htmlxp
Proste pytanie, jak zmienic:
  1. jakis wyrazTu jest

na
  1. jakis wyraz Tu jest


questionmark.gif

czyli, oddzielenie spacja 'wyraz' i 'Tu' w przypadku 'wyrazTu'


Pozdrawiam wink.gif
nospor
str_replace('wyrazTu', 'wyraz Tu')
wyrażenia tu nie są potrzebne
alegorn
wstawic spacje.
--

opisz dokładnie co chcesz osiągnąć? wymusić, by przed każdą WIELKĄ literą była spacja?
nie jestem przekonany czy w łatwy sposób osiągniesz to wyrażeniami regularnymi.

może preg_split na[a-z][A-Z]...ale nie jestem do tego przekonany (i split i replace - kasują wybrany element - i w tym problem)
najszybciej by było chyba pętla i sprawdzanie każdej litry kolejno.

aczkolwiek w php ja juz lekko zardzewialem, wiec moze ktos ci podpowie lepiej.

j.

edit literowka, zdublowalem sie z nosporem, faktycznie moze chodzilo o tak prosta sprawe...
htmlxp
nospor, to był tylko przyklad, tam znaki, wyrazy mogą być dowolne, ważne żeby je rozdzielić, moment oddzielenia jest od dużej listery. Więc ktoś ma jakiś pomysł ?


alegorn, replace kasuje element kiedy tego sobie zyczysz biggrin.gif
nospor
Ba, ja się domyśliłem że to był przykład... ale to był bardzo mało mówiący przykład i to ci chciałem dać do zrozumienia. Dopiero teraz kiedy dałeś opis widać od razu o co chodzi.
redeemer
  1. preg_replace('/(\w+)([A-Z])/U', '\\1 \\2', $string);
htmlxp
nospor, ja od zawsze miałem problemy w wytłumaczeniu o co mi chodzi, za co przepraszam.

redeemer, wszystko ok, ale co jeśli duża litera jest znakiem specjalnym ŻŚĆÓ itp ?

mająć:
  1. jakisWyraz tu jest a raczejŻoże tu być

używając:
  1. echo $text = preg_replace('/(\w+)([A-ZĄŻŚŹĘĆŃÓŁ])/U', '\\1 \\2', $text);

otrzymuje:
  1. jakis Wyraz tu jest a raczej Żo że tu by ć
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.