Autor | Zpráva | ||
---|---|---|---|
phphelp Profil * |
#1 · Zasláno: 16. 1. 2011, 00:45:43
Ahoj,
Používám delší dobu na krácení opakujících se znaků tento regulární výraz: $string = preg_replace("/(.)\\1{3,}/", "\\1\\1\\1", $string) Je fajn, že pokud někdo napíše za větou X teček (.......), automaticky je upraví na ... Problém nastává v případě, že někdo napíše třeba číslo 10000, v tom by byl trošku problém. Nevěděl by někdo, co s tím? |
||
TomášK Profil |
#2 · Zasláno: 16. 1. 2011, 01:04:29
Místo . dát výčet krácených výrazů [a-zA-Z] nebo naopak výčet výrazů, které nechcete krátit [^0-9]
|
||
needhelp Profil * |
#3 · Zasláno: 16. 1. 2011, 06:05:07
Děkuji za odpověď. Bohužel v těch regulárních výrazech mám mezeru, nefunguje mi to. Věděl by si někdo rady?
|
||
needhelp Profil * |
#4 · Zasláno: 16. 1. 2011, 06:07:03
Bude určitě lepší ta druhá možnost, protože by se měli krátit i vykřičníky, speciální znaky apod. Děkuji
|
||
needhelp Profil * |
#5 · Zasláno: 18. 1. 2011, 16:01:49
Tak si s tím nikdo neví rady? :(
|
||
imploder Profil |
#6 · Zasláno: 18. 1. 2011, 19:22:42
needhelp:
<?php $znak = "[a-zA-Z0-9\.]|ě|š|č|ř|ž|ý|á|í|é|ě|ú|ů"; $string = preg_replace("/($znak)\\1{2,}/", "\\1", $string); ?> ukázka: http://codepad.org/E66wCyqH |
||
phphelp Profil * |
#7 · Zasláno: 18. 1. 2011, 23:50:04
imploder: naprosto pefektní, znáš mapu! Díky moc!
|
||
Chamurappi Profil |
#8 · Zasláno: 19. 1. 2011, 09:28:48
Reaguji na phphelpa:
Jestli ti ale připadala lepší ta druhá možnost, tak za ten $znak dosaď spíš [^0-9] .
Reaguji na implodera: Proč nejsou ty znaky s diakritikou (kde jich mimochodem řada chybí a ě tam je dvakrát) také ve výčtu znaků?
|
||
imploder Profil |
#9 · Zasláno: 19. 1. 2011, 09:41:48 · Upravil/a: imploder
Chamurappi:
Aha, tohle by mohlo být nedorozumění, takže: ty znaky jsou myšleny jen jako příklad. Nevěděl jsem, jaké všechny znaky chce phphelp krátit, tak jsem vybral prostě nějaké jako příklad a ať si to přizpůsobí. „Proč nejsou ty znaky s diakritikou (kde jich mimochodem řada chybí a ě tam je dvakrát) také ve výčtu znaků?“ Jaké znaky s diaktitikou? Mám tam všechny znaky, které potřebuju ja ukázkový text (viz ukázka). Dvakrát "ě" je samozřejmě omyl. Je to jenom příklad. |
||
Časová prodleva: 13 let
|
0