Autor Zpráva
aj
Profil *
mam problem s reg vyrazov ktory je na viac riadkov....potrebujem aby vybral vsetky riadky v ktorych vo vnutry je slovo "kluc" (konretne v priklade druhy riadok v druhej bunke v title)
preg_match_all('/<tr color(.*)kluc(.*)<\/tr>/',$str,$vysledok);
mi nefunguje

priklad co sa nachadza v $str
<tr color="#dfad">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv
</tr>
<tr color="#dfad">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf title="kluc" g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv
</tr>
<tr color="#dfaadf">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv
</tr>
<tr color="#dfdfad">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv
</tr>


co robilm zle? ako to ma byt?
Alphard
Profil
Doplňte PCRE_MULTILINE modifikátor (m).
Kcko
Profil
Nikdy jsem moc nepochopil pouzivani modifikatoru "m". Ja pouzivam vzdy U/s/i a vysledek je stejny.
tiso
Profil
Alphard ???
Joker
Profil
Alphard:
Spíše "single line" modifikátor (s), řekl bych.

Kcko:
Ne že bych to někdy použil, ale co jsem četl, modifikátor "m" způsobí, že podmínce pro začátek a konec řetězce (^ a $) odpovídá i začátek a konec řádku.
aj
Profil *
m modifikator som skusal predtym nez som to sem pridal a nevratilo to nic...

s som skusal avsak to mi vratilo vsetky riadky (tr), ako subvyraz jedna vybralo od prveho tr az po kluc....a druhy subvyraz od kluca az po posledne /tr
Array
(
    [0] => Array
        (
            [0] => <tr color="#dfad">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv
</tr>
<tr color="#dfad">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf title="kluc" g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv
</tr>
<tr color="#dfaadf">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv
</tr>
<tr color="#dfdfad">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv
</tr>
        )

    [1] => Array
        (
            [0] => ="#dfad">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv
</tr>
<tr color="#dfad">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf title="
        )

    [2] => Array
        (
            [0] => " g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv
</tr>
<tr color="#dfaadf">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv
</tr>
<tr color="#dfdfad">
    <td> tralalaa ae ar dfvydvb> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa asdfvae ar gdsgbds <b> f seg se<imgrf g= src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar gdsgbds <b> f seg se<imgrf g=src "asf afga.,*S gsf</td>
    <td> tralalaa ae ar dfvfv

        )

)

takze stale to neslape dobre
Kcko
Profil
jako modifikatory pouzij Us
tiso
Profil
Kcko to je síce pekné, ale nepôjde to...
aj A nepôjde to kvôli tomu 2x použitému (.*), ani rôzne kombinácie obmedzenia žravosti nepomáhajú.
Alphard
Profil
Kcko, tiso:
Díky za upozornění, ráno jsem to moc nepobral.

Joker
Ano.

aj:
Omlouvám se.
Joker
Profil
tiso:
ani rôzne kombinácie obmedzenia žravosti nepomáhajú.
Ne? Mně se zdá, že v líném režimu by to mělo jít...
preg_match_all('/<tr color(.*?)kluc(.*?)<\/tr>/s',$str,$vysledok);

Hlavně jde o to druhé (.*) (vyznačeno), podle popisu je problém s "nenasytností" právě tam.

edit: jo a single-line, samozřejmě.
tiso
Profil
Joker tak si vyskúšaj že to nejde... Problém je že sa vráti prvý+druhý riadok, hoci text "kluc" obsahuje len druhý...
aj
Profil *
Alphard: v pohode:)
joker: mne sa zda tiez ta cesta s /s ako spravna kedze tam mi aspon nieco vratilo...len to este nieje ono, nechapem preco si dal za * este aj otaznik, nevies ako tu nenasitnost poriesit? pripadne den dotaz zapisat inak aby fungoval?

ak to niekto bude skusat moze tu http://warcraft3.yw.sk/reg/ hned to vrati vysledok na tom istom vyraze
aj
Profil *
nikto nic?

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: