Autor | Zpráva | ||
---|---|---|---|
Jen Profil * |
#1 · Zasláno: 4. 1. 2007, 20:02:10
Dobrý den,
prosím vás o pomoc. Je dán nasledující text: Polohovací zařízení: TouchPad, TabletPen. Rozměry: 348 x 260 x 39.9 mm. Hmotnost: 2.79 kg. Požadováno je, aby slova před dvojtečkou byla zvýrazněna. tzn. před a za slovo vložit tag strong. výsledek: <strong>Polohovací zařízení:</strong> TouchPad, TabletPen. <strong>Rozměry:</strong> 348 x 260 x 39.9 mm. <strong>Hmotnost:</strong> 2.79 kg. Jakým způsobem sestavit regulární výraz? Předem Děkuji |
||
jonge Profil |
#2 · Zasláno: 4. 1. 2007, 20:42:26 · Upravil/a: jonge
Jen
Zkus toto: $text = preg_replace("/(.+:)/", "<strong>$1</strong>", $text); Nezkoušel jsem to, ale myslím že to pojede. |
||
Jen Profil * |
#3 · Zasláno: 4. 1. 2007, 21:03:34
Výsledek tvého výrazu $text = preg_replace("/(.+:)/", "<strong>$1</strong>", $text);
<strong>Polohovací zařízení: TouchPad, TabletPen. Rozměry: 348 x 260 x 39.9 mm. Hmotnost:</strong> 2.79 kg. Ale díky. Tohoto se mi také podařilo dosáhnout. Jiná řešení? děkuji |
||
koudi Profil |
#4 · Zasláno: 4. 1. 2007, 21:29:55
$text = preg_replace("/(.+):/", "<strong>$1</strong>", $text);
jen drobný překlep |
||
Jen Profil * |
#5 · Zasláno: 4. 1. 2007, 21:39:06
Stejný efekt... ale díky.
|
||
Jen Profil * |
#6 · Zasláno: 4. 1. 2007, 21:44:08
Možná jsem zapomněl uvést, že vstupní text může být i jiném tvaru. např.:
Acer Optical Mini Mouse. Připojení: USB. Počet tlačítek: 3. Snímání pohybu: optické. Vhodná pro pravou i levou ruku. Barva černá. -> cíl: Acer Optical Mini Mouse. <strong>Připojení:</strong> USB. <strong>Počet tlačítek:</strong> 3. <strong>Snímání pohybu:</strong> optické. Vhodná pro pravou i levou ruku. Barva černá. |
||
tiso Profil |
#7 · Zasláno: 4. 1. 2007, 22:24:21
stačí získať riadok textu a časť pred : (vrátane, ak sa tam nachádza) obaliť <strong>-om.
|
||
Jen Profil * |
#8 · Zasláno: 4. 1. 2007, 23:04:42
O to se snažím, ale jakým způsobem toto provést v praxi?
Toto je dobrý základ, jen do něj zahrnout začátek řádku... $text = preg_replace("/(.+:)/", "<strong>$1</strong>", $text); |
||
Pavel Strejček Profil |
#9 · Zasláno: 5. 1. 2007, 01:02:32
$text = preg_replace('/.+:/U', '<strong>$0</strong>', $text);
|
||
k Profil * |
#10 · Zasláno: 5. 1. 2007, 08:24:49
preg_replace("/(\r|\n)([^:]+):/","$1<strong>$2:</strong>",$text);
Jde jak to mas odradkovane. Tohle je pro odradkovani pomoci entru. Jinak zmen to \r|\n na <br>. |
||
llook Profil |
#11 · Zasláno: 5. 1. 2007, 09:04:45
Plusko normálně hledá nejdelší shodu. Dejte za něj otazník a bude hledat nejkratší shodu:
$text = preg_replace("/(.+?:)/", "<strong>$1</strong>", $text); |
||
k Profil * |
#12 · Zasláno: 5. 1. 2007, 09:10:59
llook
Osobne bych uprednostnil zapis [^:]+ Hlavne ma problem ze zdroj muze vypadat tak jak pise o 5 prispevku vyse. Mala uprava meho reg: preg_replace("/( | )([^:]+:)/","$1<strong>$2</strong>",$text); --proste poranu:) |
||
Pavel Strejček Profil |
#13 · Zasláno: 5. 1. 2007, 14:45:26 · Upravil/a: Pavel Strejček
k
Jde jak to mas odradkovane. Hledat odřádkování je v tomto případě zbytečné a navíc to nenajde shodu na prvním řádku. Metaznak tečky v regulárním výrazu symbolizuje všechny znaky kromě konce řádku, pokud neuvedeš modifikátor /s => /./s preg_replace("/( | )([^:]+:)/","$1<strong>$2</strong>",$text); Toto je zbytečně komplikované řešení. |
||
k Profil * |
#14 · Zasláno: 5. 1. 2007, 15:58:32
Pavel Strejček
Mas pravdu. Proste v patek me do 11 hodin rano radsi neposlouchejte:) Jinak toto forum mi odstranilo nektere znaky,ktere tam nejsou, ale i s nima by to bylo spatne:) Spravne je zapis llooka. |
||
Pavel Strejček Profil |
#15 · Zasláno: 5. 1. 2007, 17:48:52 · Upravil/a: Pavel Strejček
k
Spravne je zapis llooka. Ten je sice správně, ale správnější je ten můj, ušetří se jedny závorky. ;-) |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0