Pomoc s úpravou regulárního výrazu

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
Rimmer
Level 4
Level 4
Příspěvky: 1171
Registrován: březen 03
Bydliště: Červený trpaslík
Pohlaví: Muž
Stav:
Offline

Pomoc s úpravou regulárního výrazu

Příspěvekod Rimmer » 27 lis 2011 17:01

Ahoj, potřeboval bych pomoc s úpravou jednoho regulárního výrazu. Koupil jsem script na zahraničních stránkách a funguje OK pro zahraniční stránky, jenže ne pro domácí. Po chvíli zkoumání jsem zjistil, že to je jen v jiném formátu vypisování info o domácích webech. Jde o info, kdy byl web založený. Když hledám datum založení u zahraničních webů, zobrazí se výjezd ve tvaru:

Kód: Vybrat vše

Creation Date: 1999-11-09


Když hledám totéž o českých stránkách, zobrazí se:

Kód: Vybrat vše

registered:   07.10.1996 02:00:00


Ve scriptu jsem našel místo, kde podle mě dochází k chybě. Potřeboval bych ho přepsat, přizpůsobit tomu, co vyjíždí u českých webů:
preg_match('#Creation Date: ([a-z0-9-]+)#si', $data, $p);

Poradí někdo? :shock:
Rimms

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: Pomoc s úpravou regulárního výrazu

Příspěvekod CZechBoY » 27 lis 2011 17:53

preg_match('#(Creation Date|registered): ([a-z0-9-]+)#si', $data, $p);
zkus
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
Rimmer
Level 4
Level 4
Příspěvky: 1171
Registrován: březen 03
Bydliště: Červený trpaslík
Pohlaví: Muž
Stav:
Offline

Re: Pomoc s úpravou regulárního výrazu

Příspěvekod Rimmer » 27 lis 2011 19:36

Dík za pokus, ale pořád to nejede. Zkoušel jsem vypsat $p, ať vím, jestli to vůbec něco načte, jenže je prázdný. Potřeboval bych vysvětlit tohle ([a-z0-9-]+)#si, co to přesně znamená?

a-z0-9 chápu jako hledej jakýkoliv znak a-z a jakýkoliv číslo, jenže co ta pomlčka za devítkou na konci a co to plusko za hranatou závorkou?
Rimms

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: Pomoc s úpravou regulárního výrazu

Příspěvekod CZechBoY » 27 lis 2011 20:52

pomlčka :)

jojo já zapoměl na zpětný lomítko ;)
preg_match('#(Creation\ Date|registered): ([a-z0-9-]+)#si', $data, $p);
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
Rimmer
Level 4
Level 4
Příspěvky: 1171
Registrován: březen 03
Bydliště: Červený trpaslík
Pohlaví: Muž
Stav:
Offline

Re: Pomoc s úpravou regulárního výrazu

Příspěvekod Rimmer » 27 lis 2011 23:48

Tak nakonec byl hlavní problém v oddělovači datumu (tohle zjištění mě stálo 3 hodiny mýho života :smile: ). Český datum se odděluje tečkou, zatímco v původním výrazu byl oddělovač pomlčka. Takže teprve to dole mi začlo fungovat tak, jak jsem potřeboval:

preg_match('#registered:   ([a-z0-9\.]+)#si', $data, $p);
Rimms

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: Pomoc s úpravou regulárního výrazu

Příspěvekod CZechBoY » 28 lis 2011 16:18

to ti ale nebude fungovat na obě verze..
nenapsal si konkrétní příklad takže jsem nemohl napsat konkrétní řešení ani já
hold popis problému je vždy nejtěžší úkol, odstranit problém je už pak hračka
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
Rimmer
Level 4
Level 4
Příspěvky: 1171
Registrován: březen 03
Bydliště: Červený trpaslík
Pohlaví: Muž
Stav:
Offline

Re: Pomoc s úpravou regulárního výrazu

Příspěvekod Rimmer » 28 lis 2011 17:26

Máš pravdu, ještě to chce trochu doladit, aby byl skript univerzálnější a je fakt, že je těžký poradit bez úplnýho zadání. Zkusím tam zapracovat tu tvojí verzi s "NEBO".

No a ještě jedna věc, dokážeš mi říct, co znamená to "#si" téměř na konci výrazu?? Prošel jsem několik stránek o výrazech a tohle jsem nikde nenašel, nechápu co to má být??
Rimms

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: Pomoc s úpravou regulárního výrazu

Příspěvekod CZechBoY » 28 lis 2011 19:24

nikde nenašel? no sakra :(
s je příznak an zpracování reguláru na všech řádcích
i je příznak na non-case-sensitive, prostě nebrat v potaz velikost písmen


preg_match('#(Creation\ Date|registered:  ): ([a-z0-9-\.]+)#si', $data, $p);
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
Rimmer
Level 4
Level 4
Příspěvky: 1171
Registrován: březen 03
Bydliště: Červený trpaslík
Pohlaví: Muž
Stav:
Offline

Re: Pomoc s úpravou regulárního výrazu

Příspěvekod Rimmer » 01 pro 2011 20:52

OK, dík za info. Jinak ta tvoje verze s | coby "NEBO" nějak nefunguje. Prozatím jsem to vyřešil podmínkou if, není to úplně ideální, no ale skript jede.
Rimms

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: Pomoc s úpravou regulárního výrazu

Příspěvekod CZechBoY » 01 pro 2011 21:12

nechápu jak to nemůže jít, když mě to šlo
pošleš ty ukázkový data?
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


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

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

Kdo je online

Uživatelé prohlížející si toto fórum: Google [Bot] a 2 hosti