Reg vyraz - nahrada paru podtrzitek tagy: _6_ na <sub>6</sub> – Regulární výrazy – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Reg vyraz - nahrada paru podtrzitek tagy: _6_ na <sub>6</sub> – Regulární výrazy – Fórum – Programujte.comReg vyraz - nahrada paru podtrzitek tagy: _6_ na <sub>6</sub> – Regulární výrazy – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
jjjosef
~ Anonymní uživatel
3 příspěvky
22. 7. 2012   #1
-
0
-

Ahoj,

potrebuji v chemickych vzorcich zapsanych ve tvaru PbAl_3_(PO_4_)(PO_3_OH)(OH)_6_ nahradit par podtrzitek okolo cisla tagy <sub></sub> s prislusnym cislem uvnitr. Konkretne tedy PbAl_3_ prevezt na PbAl<sub>3</sub>.

Nedari se me ...

Konstrukce

$chemie_reg = Ereg_Replace("_[^_(.*)]_", "<sub>\\1</sub>", $chemie);

ke ktere jsem se dopracoval sice temer dela to co chci jenze mi mezi tagy neprenese hodnotu z retezce ale vypise jen \1. Podle toho co jsem vycetl na netu by se mel misto te 1 vlozit retezec, ktery zastupuje hvezdicka.

Konkretne to vypada takhkle:
PbAl_3_(PO_4_)(PO_3_OH)(OH)_6_
po prevodu v html:
PbAl<sub>\1</sub>(PO<sub>\1</sub>)(PO<sub>\1</sub>OH)(OH)<sub>\1</sub>

Pokud se najde nejaka dobra duse, prosim o konkretni ukazku kodu.

Diky.

Nahlásit jako SPAM
IP: 90.176.214.–
Reklama
Reklama
jistr
~ Anonymní uživatel
61 příspěvků
22. 7. 2012   #2
-
0
-

To lomitko se ti do toho stringu nevklada. Bud ten druhy parametr cely napis do jednoduchych uvozovek, ne dvojitych, nebo pred tu 1 dej dve lomitka: \\1

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 46.135.84.–
jistr
~ Anonymní uživatel
61 příspěvků
22. 7. 2012   #3
-
0
-

Hm tak tady mi to taky sezralo lomitko :) maji tam byt dve pred tou jednickou :)

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 46.135.84.–
jjjosef
~ Anonymní uživatel
3 příspěvky
22. 7. 2012   #4
-
0
-

#3 jistr
Pokud jsi to myslel takhle:

$chemie_reg = Eregi_Replace("_[^_(.*)]_", '<sub>\\1</sub>', $chemie);

tak to nefunguje, vysledkem je prevod napriklad

Cu_2_Cl(OH)_3_

na

Cu<sub>\1</sub>Cl(OH)<sub>\1</sub>

Nahlásit jako SPAM
IP: 90.176.214.–
jistr
~ Anonymní uživatel
61 příspěvků
22. 7. 2012   #5
-
0
-

Psal jsem "nebo" :)

Bud jednoduchy uvozovky, nebo dve lomitka, ne oboje zaraz :))

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 46.135.84.–
jjjosef
~ Anonymní uživatel
3 příspěvky
22. 7. 2012   #6
-
0
-

dve lomitka a cely druhy vyraz v uvozovkach mam v mem dotazu na zacatku ... "<sub>\\1</sub>"

pokud se zaridim dle druhe rady - tedy druhy vyraz v jednoduchych uvozovkach a jen jedno lomitko pred jednickou

$chemie_reg = Ereg_Replace("_[^_(.*)]_", '<sub>\1</sub>', $chemie);

tak je vysledkem opet paskvil a misto hodnot mezi podtrziky se za ne vsude dosadi lomitko s jednickou

z Cu_2_PO_4_(OH) vznikne paskvil Cu\1PO\1(OH)

Napis sem prosim cely funkcni vyraz tak jak to zkousis u sebe ... Potrebuji to udelat v php, netestujes to na necem jinem?

Diky.

Nahlásit jako SPAM
IP: 90.176.214.–
jistr
~ Moderátor
0
Návštěvník
22. 7. 2012   #7
-
0
-

Aha omlouvám se, mně se to v mobilní verzi fóra vypisovalo jen jako \1 a ne \\1, stejně tak v mém vlastním příspěvku, teď už to vypadá opravené.

Takže ta druhá část by měla být v pořádku, problém bude v prvním parametru. Zkus "_([^_]*)_".

Předtím jsem to netestoval, teď to testuju v Ruby, ale všechny jazyky mají regulární výrazy +- podobně:

irb(main):005:0> "Cu_2_PO_4_(OH)".gsub(/_([^_]*)_/, '<sub>\1</sub>')
=> "Cu<sub>2</sub>PO<sub>4</sub>(OH)"
Nahlásit jako SPAM
IP: 89.177.124.–
Software Engineer @ Red Hat
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 1 host

Podobná vlákna

Reg. výraz — založil RePRO

Import REG souborů — založil Reverend

Vlatni tagy — založil tribalcz

Filemaker a tagy — založil Tommy

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý