Autor | Zpráva | ||
---|---|---|---|
unlucky Profil |
#1 · Zasláno: 19. 6. 2010, 23:05:26
Potřeboval bych pomoc s regulárama:
Na stránce mám několik řetězců video?c=17 video?c=5 atd... potřeboval bych získat to číslo za "c". Za číslem už jsou pouze uvozovky. zkoušel jsem: ~video\?c=(.*)>~ /video?c=([^ ]*)/i ale jak si to nefunguje :P předem děkuji |
||
AM_ Profil |
#2 · Zasláno: 19. 6. 2010, 23:20:57 · Upravil/a: AM_
první výraz nefunguje, protože .* požere všechno, musíš ji udělat ungreedy (.*? nebo dát nakonec modifikátor U)
druhý výraz nefunguje? protože bere: videoc=(cokoliv bez mezery) nebo videc=(cokoliv bez mezery) ano, neoescapoval jsi otazník. V prvním výraze už jsi to měl ;) // jinak nezapomínej, že pokud máš regulár v uvozovkách ", musíš všechna zpětná lomítka psát zdvojená, protože první si escape sekvence přebere PHP a pak až regulár. raději je piš do apostrofů; sry jestli radím něco co už víš, z ukázky to není jasné. |
||
unlucky Profil |
#3 · Zasláno: 19. 6. 2010, 23:37:57
AM:
„první výraz nefunguje, protože .* požere všechno, musíš ji udělat ungreedy (.*? nebo dát nakonec modifikátor U)“ ~video\?c=(.?)~ bere pouze 1 cislo > druhý výraz nefunguje? protože bere: > videoc=(cokoliv bez mezery) nebo videc=(cokoliv bez mezery) > ano, neoescapoval jsi otazník. V prvním výraze už jsi to měl ;) /video\?c=([^\\"]*)/i uz funguje. Predtim jsem oscapoval pouze jednou. Ale vrací mi to pořád video?c=cislo. Chci pouze číslo. Lze to nějak přímo? nehcci to dělat přes substr atd.. |
||
Keeehi Profil |
#4 · Zasláno: 19. 6. 2010, 23:43:08
~video\?c=(.*?)~ |
||
unlucky Profil |
#5 · Zasláno: 19. 6. 2010, 23:45:51
Keeehi:
ee, na hvězdičku jsem nezapomněl. Nefungoval by |
||
jsim Profil |
#6 · Zasláno: 19. 6. 2010, 23:55:27
$videos = array('video?c=15', 'video?c=1', 'video?c=154', 'video?c='); preg_match_all('/video\?c=([0-9]{1,})/', implode(' ', $videos), $matches); var_dump($matches[1]); by mohlo fungovat... |
||
Keeehi Profil |
#7 · Zasláno: 20. 6. 2010, 00:11:44
/video\?c=(\d+)/ |
||
AM_ Profil |
#8 · Zasláno: 20. 6. 2010, 09:06:43
unlucky:
„ee, na hvězdičku jsem nezapomněl. Nefungoval by“ to máš nějakou porouchanou věšteckou kouli, on by totiž fungoval (otazník za kvantifikátorem z něj dělá ungreedy kvantifikátor) musíš vyzvedávat $matches[1], $matches[0] je vždy celý matchnutý string |
||
Časová prodleva: 14 let
|
0