Autor Zpráva
Radim24
Profil *
Ahoj všem,
prosím vás o radu s negací uvnitř třídy. Zjistil jsem, že to vůbec nefunguje tak jak má a nevím proč. Chtěl jsem najít předlohu, která mi vrátí řetězec, který neobsahuje závorky. Zkoušel jsem [^()[]] ale, nakonec závorky jsou vždycky zahrnuty ve výsledku. Dokonce i když jsem zkusil příklad že hledám znaky abecedy[abcdefghijklmnopqrstuvwxyz]+, očekával bych, že mi to vrátí pouze takové slova, která obsahujíc POUZE tyto znaky, ale nestalo se tak. Ve vráceném výsledku jsou věty včetně závorek. Nakonec třetí pokus měl vynechat slova se zavináčem, křížkem a ampersandem ale opět to zahrnul do výsledku. Prostě to nechápu. Očekávám, že to je nějaká blbost, mělo by to fungovat aleuž nevím. Prosím o pomoc, díky moc.

$query='web@centrum.cz #kotva &nbsp ';
$p1="[^!@#$%^&*(){}]+";
$pattern="/$p1/";
preg_match_all($pattern, $query, $out);
print_r($out);


Array
(
[0] => Array
(
[0] => web@c
[1] => entrum.cz #k
[2] => otva &n
[3] => bsp
)

)
bukaj
Profil
A máš oescapované všechny znaky, které by mohly být pokládány za meta-znaky?
Radim24
Profil *
Jo, jasně. Nahoře, jsem omylem psal [^()[]] blbě, mám tam [^()[]] - akorát jednu hranatou závorku je třeba vyescapovat. Ale jak říkám. já jsem zkoušel i jednoduché znaky jako křížek nebo zavináč nebo i obyčejná písmena abcd... takže to nechápu... je to základ, ale mě to nejede
Radim24
Profil *
ŽE BYCH TO MĚL BLBĚ?
TADY ČTU:
http://www.builder.cz/art/php/clanek1831189438.html

"Př.: regulárnímu výrazu [[:<:]]Marek[[:>:]] vyhoví pouze slovo Marek."

MYSLEL JSEM, ŽE TAM MÁ BÝT JEN [abcdefghi...] dovnitř mám uvést znaky které hledám, ale proč se tady píše [[:slovo:]]?
Radim24
Profil *
můžete mi doporučit nějaké stránky kde bych se mohl zeptat na regulární výrazy?
Mike8748
Profil
a muzu se zeptat proc na to pouzivas reg.vyrazy kdyz na to staci bohate str funkce? konkretne str_replace, pripadne str_tr ?
Radim24
Profil *
A jako jak to mám tomu str_raplace zadat? příklad:
"(hledám) (nějaký) článek"
a ted bych mu měl říct, že slovo, které není v závorce - článek - má být zaměněno na [článek]
K tomu bych stejně potřeboval pre_replace
Radim24
Profil *
A jako jak to mám tomu str_raplace zadat? příklad:
"(hledám) (nějaký) článek"
a ted bych mu měl říct, že slovo, které není v závorce - článek - má být zaměněno na [článek]
K tomu bych stejně potřeboval pre_replace
Radim24
Profil *
Já nemohu použít str_replace, nejde o to nahradit ty zavináče, to byl příklad. Jde o to zadat takový požadavek:
najdi všechny slova, která neobsahují závorky kulaté, hranaté... myslel jsem že by to mělo jí [^()[]]+
kajaman
Profil
doporučuji:
http://interval.cz/serialy/perl-compatible-regularni-vyrazy-v-php/
Radim24
Profil *
Ty diskuse jsem už dříve četl a já články skladuju a zvýrazňuji nebo ukládám si věci, které si potřebuju zapamatovat. nicméně jsem tam nikde nenašel odpověď. To co jsem zjkoušel myslím bylo na stejných obecných tvrzení o třídě znaku: že zadáš do závorek znaky, a mělo by to najít slova které tyto znaky obsahují, ale proč to najde i ty znaky, které jsem do závorek nezadal? Anebo negace třídy. Dám negaci, a ono mi to tam stejně ty znaky vrátí...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: