Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: rreguler 22. 10. 2018, 19:50:45
-
ahoj, chtěl bych znát postup pro regex, který pouští stringy neobsahující ani jedno ze určených slov akorát v podstatě něco jako
grep -v bures|agrofert
Až na to, že právě já mohu určit pouze regulerní výraz a né parametry grep (třeba to vůbec matchuje jiná knihovna), tudíž potřebuji inverzi provést na úrovni výrazu
Například je možné udělat filtr koncovek
/(?<!jpg|js|regms-trans)$/
nebo filtr začátků
/^(?!Slibím|Zařídíme|Makáme)/
jak udělat
filtr filtrující kdekoli uprostřed? Bez nějakých ugly hacků ...
-
co todle?:
^((?!rumcajs).)*$
ale ja som strasna regex lama ::)
-
V kazdem jazyce, zakladni knihovne je vyhledani slova ve stringu/textu.
a pokud hledam jen slovo, je regex kanon na komara.
-
Nebyl jsem si jisty tim jak jsem napsal find vs regex.
tak co jsem vygooglil, tak regex je lepsi, je jednopruchodovy.
-
ahoj, chtěl bych znát postup pro regex, který pouští stringy neobsahující ani jedno ze určených slov akorát v podstatě něco jako
grep -v bures|agrofert
Až na to, že právě já mohu určit pouze regulerní výraz a né parametry grep (třeba to vůbec matchuje jiná knihovna), tudíž potřebuji inverzi provést na úrovni výrazu
// obsahuje radek klicova slova?
if (!preg_match('/bures|agrofert/',$radek) {
// ne, neobsahuje!
...
...
}
Nemas zac :-)
-
preg_match
Nemas zac :-)
Není zač. Toto není regulérní výraz, nýbrž výraz v programovacím jazyce, který až teprv obsahuje regulérní výraz.
-
co todle?:
^((?!rumcajs).)*$
ale ja som strasna regex lama ::)
Toto je najlepšie riešenie čo poznám, je to ale veľmi neefektívne, treba sa tomu vyhnúť ak sa dá. Regex nie je vhodný na negatívne hľadania.
-
/^(?!.*(?:jedna|dva))/
-
Toto není regulérní výraz, nýbrž výraz v programovacím jazyce, který až teprv obsahuje regulérní výraz.
A jak poustis regex ty?
-
Toto není regulérní výraz, nýbrž výraz v programovacím jazyce, který až teprv obsahuje regulérní výraz.
A jak poustis regex ty?
:D tipl bych, že ho pouští právě podle toho, který jazyk nebo nástroj na to používá (na světě neexistuje jen PHP ;) ). třeba v js "tralalala".match(/r.l/)
btw: velmi dobrý nástroj pro testování regex(p)ů je https://regex101.com/ - snaží se i vysvětlit význam jednotlivých částí výrazu :)
-
btw: velmi dobrý nástroj pro testování regex(p)ů je https://regex101.com/ - snaží se i vysvětlit význam jednotlivých částí výrazu :)
regexbuddy https://www.regexbuddy.com/ mi připadá lepší, je to debugger na mnoho dialektů regexů. běhá i pod wine. jeho autor napsal i další podobné nástoje, třeba regexmagic pro vyklikávání regexů v gui. :)