| Autor | Zpráva | ||
|---|---|---|---|
| Hlelep Profil * |
#1 · Zasláno: 21. 11. 2013, 15:39:01
Ahoj, mám řetězec znaků (písmena, čísla nebo otazník) a potřeboval bych, aby za každý znak vložil mezeru. Ale když tam bude mínus, tak zůstane s předchozím znakem. Za poslední znak mezera taky nepřijde.
Např. 1X23?AN3-4AEBJCDEEJ přelouská jako 1 X 2 3 ? A N 3- 4 A E B J C D E E J |
||
| peta Profil |
preg_replace('~?~', '$1 ', $str);
preg_replace('~[-] ~', '-', $str); |
||
| Jan Tvrdík Profil |
#3 · Zasláno: 21. 11. 2013, 15:54:41
Hlelep:
$s = '1X23?AN3-4AEBJCDEEJ';
$s = preg_replace('~(?<=.)[^-]~', ' $0', $s);peta: To nebude fungovat. |
||
| Hlelep Profil * |
#4 · Zasláno: 21. 11. 2013, 15:56:11 · Upravil/a: Hlelep
Díky moc
A ještě bych se chtěl optat, existuje univerzální způsob na odstranění všech bílých znaků? Našel jsem jen trim, ale ten neodstraní vše a pak přes preg replace, ale i tak mi například tohle nechá mezírku. Potřebuji se prostě zbavit úplně všech mezer (abych mohl praktikovat kód, který jste mi poradili výše). A jde o to, že někdy tam je mezera, někdy tabulátor a tak.. $s = "? 2 3 2- 1 1- 3- 2 1 1 X N
J C G C A H H F B A D E";
$s = trim($s);
$s = str_replace(" ","",$s);
$s = str_replace(" ","",$s);
echo $s; |
||
| Hlelep Profil * |
#5 · Zasláno: 22. 11. 2013, 00:17:47
Ještě jsem zkoušel něco hledat, ale bezvýsledně
|
||
| juriad Profil |
Všechny tři řádky můžeš nahradit za:
$s = preg_replace('/\s/', '', $s);\s má význam any whitespace character
|
||
| peta Profil |
#7 · Zasláno: 22. 11. 2013, 08:13:22
pripadne tam muzes dat plusko nahradit opakovani mezery za jedinou
$str = preg_replace('~\s+~', ' ', $str); |
||
| Hlelep Profil * |
#8 · Zasláno: 22. 11. 2013, 15:40:42
Díky moc
|
||
|
Časová prodleva: 12 let
|
|||
0