Autor | Zpráva | ||
---|---|---|---|
wolf_2006 Profil * |
Mám nějaký řetězec třeba:
První větaDruhá větaTřetí věta Ve výsledku má být: První věta Druhá věta Třetí věta Snažím se vytvořit správný výraz, ale nějak mi to nejde. Když zapíšu [A-Z], tak mi to správně najde všechna velká písmena, ale já bych potřeboval, aby to to první vynechalo. Díky za nakopnutí Moderátor Joker: Titulek „Regulární výraz“ byl moc obecný. Příště zkus prosím vymyslet lepší.
|
||
Majkl578 Profil |
#2 · Zasláno: 25. 8. 2011, 09:29:36
wolf_2006:
„Ve výsledku má být“ $text = 'První větaDruhá větaTřetí věta'; $textAry = preg_split('~(?<!^)(?=[A-Z])~', $text); var_dump($textAry); |
||
wolf_2006 Profil * |
#3 · Zasláno: 25. 8. 2011, 09:46:23
Majkl578:
Díky, mohl bys mi k tomu dát nějaký popisek, pořád v tom tápu |
||
Joker Profil |
#4 · Zasláno: 25. 8. 2011, 11:35:45
wolf_2006:
„mohl bys mi k tomu dát nějaký popisek“ preg_split viz manuál, regulární výraz určuje na kterých místech se má řetězec rozdělit. (?<!^) = záporné tvrzení o předcházejícím, tj. předchozí znak nesmí být začátek řetězce (nebo řádku) (?=[A-Z]) = kladné tvrzení o následujícím, tj. následující znak musí být velké písmeno Tedy řetězec se rozdělí v místě před kterým není začátek řetězce (případně řádku) a zároveň za ním je velké písmeno. Akorát to myslím nebude fungovat na velká písmena s diakritikou, například: První větaDruhá větaTřetí větaČtvrtá věta |
||
o_O Profil |
#5 · Zasláno: 25. 8. 2011, 11:44:09 · Upravil/a: o_O
Joker:
„myslím“ Nebude. Dělal jsem menší sbírku znaků s diakritikou, tak doplňuji: $text = 'První větaDruhá větaTřetí větaČtvrtá věta'; $textAry = preg_split('~(?<!^)(?=[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽĹÔÄËÏÖÜŸ])~u', $text); var_dump($textAry); |
||
wolf_2006 Profil * |
#6 · Zasláno: 25. 8. 2011, 14:14:22
Joker:
Díky za vysvetlení, už to vypada mnohem čitelnějc, ještě pár hodin tréniku a snad to budu moc běžně používat |
||
wolf_2006 Profil * |
#7 · Zasláno: 25. 8. 2011, 14:16:04
Jinak ty české znaky to fakt nezobrazuje a tak jsem to pořešil dle o_O
|
||
Majkl578 Profil |
#8 · Zasláno: 25. 8. 2011, 21:25:36 · Upravil/a: Majkl578
Myslím, že úplně ideální by bylo použít pro znaky s diakritikou escape sekvence určené k matchování unicode znaků:
$text = 'První větaDruhá větaTřetí větaČtvrtá věta'; $textAry = preg_split('~(?<!^)(?=\p{Lu})~u', $text); var_dump($textAry); |
||
Časová prodleva: 13 let
|
0