PHP pomoc s regexem

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
kennyz
Level 1.5
Level 1.5
Příspěvky: 138
Registrován: leden 06
Bydliště: /dev/null
Pohlaví: Muž
Stav:
Offline
Kontakt:

PHP pomoc s regexem

Příspěvekod kennyz » 28 dub 2011 00:27

Zdravim,
už několik hodin hledám a zkouším a stále nic, co by mi fungovalo podle toho co potřebuju :(

Mám jednoduše nějaký string např.:

Kód: Vybrat vše

$text = "Nějaký *tučný* text <pre class="neco">...</pre> další *tučný* text";


a teď :D ... potřebuju přes regex (nebo jakkoli, hlavně né cyklus), udělat to, že se vezme celý text, krom toho <pre>..</pre> a kde je *tučný* tak nastaví na <strong>tučný</strong>.

Problém je, že já tohle mám, ale zasahuje mi to i do toho obsahu <pre> což nechci a to nevim jak udělat..

současný regex a vlastně celej vstup, mám jako:

Kód: Vybrat vše

$text = "vstupní dlouhý text";
$text = preg_replace('/\*(.+)\*/', '<strong>$1</strong>', $text);


Tak doufám, že se někdo najde, kdo by věděl :smile:

Reklama
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: PHP pomoc s regexem

Příspěvekod CZechBoY » 28 dub 2011 08:35

co třeba přes Str_replace přehodit <pre za <strong ?
$pattern='/\*(.+)\*/' tim zjistíš co je mezi hvězdičkama *zjišťuji*

$pattern='/<pre.*>(.+)<\/pre>/' ti zjistí co je uvnitř tagu PRE: <pre..>zjišťuji tento text</pre>
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
kennyz
Level 1.5
Level 1.5
Příspěvky: 138
Registrován: leden 06
Bydliště: /dev/null
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: PHP pomoc s regexem

Příspěvekod kennyz » 28 dub 2011 10:09

To vim, ale na <pre...</pre> nemůžu sáhnou ani nijak měnit, prostě potřebuju nějak vybrat vše, mezi záčátkem až do značky "<pre class=" a tam změnit to co jsem psal, čili *bold* za <strong>bold</bold>

to samé potom na konci, od konce </pre> až do opet zacátku <pre class= a na konec od konce </pre> do konce stringu

mám treba:

Kód: Vybrat vše

$string = "
  začátek *bold* něco
  <pre class="xy">neco</pre>
  další text *bold* něco
  <pre class="xy">neco</pre>
  konečný text *bold* a tečka.
";


a nějak nemůžu přijít na to, aby to zaměnilo vsechny *bold* v textu za <strong>bold</strong> a zárověn preskakovalo vsechno mezi zanačkama <pre .. </pre> včetně značek

Tohle řešim, takže nějak asi neruzumim, proč bych měl zjistovat, co je mezi <pre>, když to mi bude kničemu :))

--- Doplnění předchozího příspěvku (Čtv Dub 28, 2011 1:37 pm) ---

To nikdo neví?? :(

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: PHP pomoc s regexem

Příspěvekod CZechBoY » 28 dub 2011 14:25

jsem snad něco psal ne?
$pattern='/*(.+)*/' to ti vrátí text mezi hvězdičkama *text*
$pattern='/(.+)<pre class=.+>.+<\/pre>(.+)/' ti vrátí co je před PRE a co je za PRE
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
kennyz
Level 1.5
Level 1.5
Příspěvky: 138
Registrován: leden 06
Bydliště: /dev/null
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: PHP pomoc s regexem

Příspěvekod kennyz » 28 dub 2011 15:25

Aha, jsem to nějak zkoušel podle toho cos napsal a nějak to nejde nebo nechapu jak by to mělo fungovat no :/

můžeš mi to prosímtě ukázat na tom prvotním příkladu stringu? :)

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: PHP pomoc s regexem

Příspěvekod CZechBoY » 29 dub 2011 20:24

ty potrebujes ziskat cisty text bez <pre>...</pre> aprehodit z * na <strong>?

tak jedine cyklus, jinak to asi nepujde :(

nebo ten pre je vzdy stejny? pak muzes pouzit Str_Replace a vyhodit ten pre a mas to pak lehke
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
kennyz
Level 1.5
Level 1.5
Příspěvky: 138
Registrován: leden 06
Bydliště: /dev/null
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: PHP pomoc s regexem

Příspěvekod kennyz » 30 dub 2011 01:13

Jinak jo, jak si psal, získat vše krom <pre>...</pre> z textu a nahradit *...* za <strong>...</strong>

Ja uz nemam silu to dal resit, jsem to vyresil tak, že mam misto *bold* toto strong->text×
sice to bere i obsah <pre>, ale tento string tam nebude snad


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Pomoc s webem
    od Tay » 09 úno 2025 15:53 » v Web-tipy a vaše weby
    5
    19750
    od Tay Zobrazit poslední příspěvek
    10 úno 2025 12:09
  • Pomoc při taktu Příloha(y)
    od ondyN » 14 led 2025 15:53 » v Taktování a další úpravy PC
    2
    6788
    od Dyonysos Zobrazit poslední příspěvek
    14 led 2025 16:19
  • Pomoc pri upgrade procesoru
    od filipo88 » 16 úno 2025 19:11 » v Rady s výběrem hw a sestavením PC
    5
    3046
    od petr22 Zobrazit poslední příspěvek
    17 úno 2025 12:45
  • Pomoc se zpomaleným notebookem
    od trefort » 29 zář 2024 14:02 » v Problémy s hardwarem
    8
    2813
    od atari Zobrazit poslední příspěvek
    30 zář 2024 10:04
  • Pomoc s výběrem komponent
    od kurkisak » 02 pro 2024 14:48 » v Rady s výběrem hw a sestavením PC
    2
    1776
    od kurkisak Zobrazit poslední příspěvek
    02 pro 2024 18:11

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti