Autor | Zpráva | ||
---|---|---|---|
Keilew Profil |
#1 · Zasláno: 17. 6. 2007, 16:58:35
Ahoj, není tu nějaký šikula, co umí hoodně dobře regulární výrazy a dokáže vytvořit regulární výraz pro správné zaměňování dělitelné mezery za nedělitelnou ( ) v řetězci?
|
||
Zerog Profil |
#2 · Zasláno: 17. 6. 2007, 17:20:01
Asi hloupy dotaz ale nestaci to udelat takhle?
$text=str_replace (" "," ",$text); |
||
Petr Tichý Profil |
#3 · Zasláno: 17. 6. 2007, 17:21:47
Zerog
Spíš by to asi chtělo jen tam, kde to má být. Nikoliv všude. To by pak byl ten text na jeden řádek. |
||
Str4wberry Profil |
#4 · Zasláno: 17. 6. 2007, 17:23:59 · Upravil/a: Str4wberry
Zerog
Jen jestli to Keilew nemyslel třeba z typografického hlediska. Jako nahrazovat u jednopísmenných slov atp. |
||
Zerog Profil |
#5 · Zasláno: 17. 6. 2007, 17:28:25
No prove zalezi na tom co v te promene vlastne bude. Jaky je vlastne spravny ucel nedelitelne mezery?
|
||
Keilew Profil |
#6 · Zasláno: 17. 6. 2007, 17:29:59 · Upravil/a: Keilew
Zerog
Přesně, takhle by to bylo všude. Mohlo by jít toto? "(s|z|na|v|ve|před|pod|od|do)\s" nahradit za "$1 ", ale asi to nebude to pravé ořechové. Co třeba se "se"? Jako zvratné tentononc to není potřeba nedělit, ale jako předložku ano... |
||
Mastodont Profil |
#7 · Zasláno: 17. 6. 2007, 17:31:33
Zerog
Nedělitelná mezera zajišťuje, aby na konci řádku nezůstala předložka bez následujícího slova. IMHO se používá ale i u spojek. Keilew "před" a "pod" jsou dost dlouhé, ty opticky IMHO tolik nevadí. |
||
Keilew Profil |
#8 · Zasláno: 17. 6. 2007, 17:32:30
Mastodont
Nevadí, ale jsou to předložky a ty nesmějí zůstat na konci. Ale to už je detail. Na spojky se to nevztahuje, alespoň tak nás to učili ve škole;-) Kdysi... |
||
Petr Tichý Profil |
#9 · Zasláno: 17. 6. 2007, 17:37:42 · Upravil/a: Petr Tichý
Keilew
Osobně bych řekl, že pouze jednopísmenové předložky nesmějí být na konci řádku. // "V češtině pak má tvrdá mezera ještě jedno nezastupitelné místo. Může zaručit, že se jednopísmenná předložka, spojka či libovolný jeden znak nikdy neobjeví na konci řádku." |
||
Mastodont Profil |
#10 · Zasláno: 17. 6. 2007, 17:38:34
Keilew
To tedy nemyslím: http://blog.converter.cz/index.php?p=513&c=1 |
||
Zerog Profil |
#11 · Zasláno: 17. 6. 2007, 17:40:05
No vidite, to me nikdy nenapadlo ze pravej ucel je zrovna tenhle :) sou veci.
Stejne se tam asi budou muset vypsat vsechny ty predlozky a spojky rucne ..asi ..ne? A to jeste bude muset znat ty vyjimky... (ten regularni vyraz) |
||
bukaj Profil |
#12 · Zasláno: 17. 6. 2007, 17:41:08
Keilew
Na spojky se to nevztahuje ale vztahuje... :) |
||
Keilew Profil |
#13 · Zasláno: 17. 6. 2007, 17:43:47
No na ZŠ i Gymplu nás učili, že tam nesmí zůstat žádná, ale to je jedno. Pak to bude vypadat:
"(k|K|o|O|s|S|u|U|v|V|A|\w\.|Ing\.|Bc\.|MUDr\.|JUDr\.|Mgr\.)\s" a zbytek už nevím, jak tam nacpat... |
||
Keilew Profil |
#14 · Zasláno: 17. 6. 2007, 17:45:21
|
||
krteczek Profil |
#15 · Zasláno: 17. 6. 2007, 17:53:12
proč se trápit s regulárama když už to někdo udělal za nás?
http://texy.info nebo <reklama> http://texyla.jaknato.com (AJAX nadstavba nad texy + vnitřní rozhraní pro zpracování textu v php pomocí texy => stále ve vývoji ;-))</reklama> |
||
Keilew Profil |
#16 · Zasláno: 17. 6. 2007, 18:05:11 · Upravil/a: Keilew
Tak jsem dospěl k závěru, že je to nejednoznačné. Ani Pravidla českého pravopisu v tom nejsou jasná. Obecně platí, že na konci nesmí zůstat v, s, z, k na konci řádku. AJČ AV ČR také píše, že by tam nemělo být ani a, i, o, u. Dle některých konvencí ani ve, ke, ku, ze, na, do, od, pod. Tak si vyberte:-)
Jo a v žádném případě nepište "velkoobchod papírem", ale "velkoobchod s papírem"! Zrovna tak "kdo s koho" je značně archaické - píše se správně "kdo z koho"! To jsou dvě velice časté chyby... |
||
Petr Tichý Profil |
#17 · Zasláno: 17. 6. 2007, 18:11:03
"Kdo s koho" je správně.
|
||
Keilew Profil |
#18 · Zasláno: 17. 6. 2007, 18:12:34
"Kdo z koho" taky:-) "Kdo s koho" je staročeská varianta - vazba se 4. pádem. Ustupuje a mizí, stejně jako gymnásium apod.
|
||
bukaj Profil |
#19 · Zasláno: 17. 6. 2007, 18:13:26
Keilew
Ne a nikdy nevztahovalo:-) AJČ AV ČR také píše, že by tam nemělo být ani a, i právě tyto spojky jsem měl namysli |
||
Keilew Profil |
#20 · Zasláno: 17. 6. 2007, 18:14:50
bukaj
Tak neglobalizuj, protože "protože" je taky spojka:-) Téma "kdo s koho" apod. přesunuto na Typografii! Zde pokračují jen regulární výrazy... |
||
Keilew Profil |
#21 · Zasláno: 17. 6. 2007, 19:31:05
Jak spojit tyto dvě regulární procedury?
Potřebuju, aby to fungovalo pro případ "a na náměstí" -> "a na náměstí". Tohle nefunguje:
|
||
krteczek Profil |
#22 · Zasláno: 17. 6. 2007, 20:46:09
to je logické, protože:
1. "a na náměstí" => 1 "a na náměstí" to je v pořádku 2. "a na náměstí" jsou to pro regulár dvě slova ;-) takže je třeba upravit regulár... |
||
Keilew Profil |
#23 · Zasláno: 17. 6. 2007, 21:14:01
Konkrétně?
|
||
krteczek Profil |
#24 · Zasláno: 17. 6. 2007, 21:42:53
Keilew: uvědom si že celý text se prochází postupně (v sérii) takže v momentě kdy se nahradí mezera za "a" na " " už nebudou 3 slova: "a", "na", "náměstí" s mezerami před nimi, ale jen dvě slova "a na" a "náměstí" s mezerou mezi, a tudíž nebude platit regulární výraz pro "na" protože už tam vlastně není
regulár musíš upravit tak, aby bral kromě mezer i "&bsp;" před konkrétním seznamem slov |
||
Keilew Profil |
#25 · Zasláno: 17. 6. 2007, 21:56:37
Chápu, ale původně jsme myslel, že to vyřeší ta alternace ([[:<:]]|&[a-z]+;)...asi špatně... tak já jdu dumat...
|
||
MzM Profil |
#26 · Zasláno: 18. 6. 2007, 09:49:50
na to byla přímo napsaná knihovnička (fce)... kdysi jsem ji použil...
jo, "skoba" se to jmenovalo viz http://www.kai.tul.cz/~satrapa/sw/skoba/ je to sice perl, ale věřím, že to snadno přepíšete na PHP... |
||
Časová prodleva: 17 let
|
0