Autor | Zpráva | ||
---|---|---|---|
Radovan789 Profil * |
#1 · Zasláno: 26. 6. 2012, 15:03:21
Zdravím,
vytvořil jsem si tento reg. výraz: ^[^0-9](.+)-([0-9]+)$ pro tento výraz vyhovuje: text-3 nevyhovuje: 477-text (což funguje podle očekávání) Jak bych mohl tento výraz upravit tak aby vyhovovali i tyto stringy: text6440-3 t-3 Pravidla: string nesmí začínat číslem (musí začinát písmenem). String musí mít před pomlčkou 1 a více znaků (první znak musí být písmeno podle prvního pravidla). Předem děkuji za rady. |
||
Tori Profil |
Radovan789:
„string nesmí začínat číslem (musí začinát písmenem).“ To jsou dvě celkem různé věci. :) Výše uvedeným regulárem by imho prošlo i "---text". Písmena mohou být s diakritikou nebo jen bez? (píšu bez): ~^([a-z].+?)-([0-9]+)$~i // pro preg_match. Syntax pro ereg() si nepamatuju, nepoužívám. |
||
Radovan789 Profil * |
#3 · Zasláno: 26. 6. 2012, 15:20:03
PHP Code Example: <?php $sourcestring="t-3"; preg_match('~^([a-z].+?)-([0-9]+)$~i',$sourcestring,$matches); echo "<pre>".print_r($matches,true); ?> Matches Found: NO MATCHES. Děkuji za snahu ale nevyhovuje pro string t-3 A nerozumím tomu proč používat ~ místo / |
||
Kajman Profil |
#4 · Zasláno: 26. 6. 2012, 15:20:45
Tori:
„.+?“ Nejsem si jistý, co udělají dva kvantifikátory po sobě, ale spíše tam má být .*, aby prošlo i t-3. |
||
Radovan789 Profil * |
#5 · Zasláno: 26. 6. 2012, 15:25:50 · Upravil/a: Radovan789
Kajman:
Počítám-li správně tak jsou tři po sobě. Toriho příklad je pro moje zadání neplatný...Neví někdo jak by to mělo být? Kajman: Tak teda dva... jsem se spletl. |
||
Tori Profil |
Kajman:
Pravda, mělo být "0 a více", díky. ~^([a-z].*)-([0-9]+)$~i
„Nejsem si jistý, co udělají dva kvantifikátory po sobě“ + nebo * samotné najdou max.počet odpovídajících znaků, +? nebo *? najde min.počet odpovídajících znaků. Taky se to dá přepnout modifikátorem "U" - potom to s otazníkem funguje přesně naopak. Ale tady to bylo zbytečné, uznávam, spíš se to hodí pro nalezení více výskytů preg_match_all('~\[tag\].*?\[/tag\]~is', $text, $m); .
|
||
Radovan789 Profil * |
#7 · Zasláno: 26. 6. 2012, 15:51:19
Tori:
Děkuju |
||
Časová prodleva: 12 let
|
0