Hirdetés

Új hozzászólás Aktív témák

  • cucka
    addikt

    Hali!
    Van egy program, amiben egy reguláris kifejezés helyes értelmezésével akadtak problémáim, leírom a feladatot (benne a regexpet), aztán ahogy értelmeztem, légyszi javítsatok ki, hogy jó-e... :B :R

    "Írjon C programot, amely a szabványos kimenetre kiír egy olyan 184 sor hosszú szöveget, amelyben pontosan 3 olyan egymástól különböző sor van, amelyre az alábbi reguláris kifejezés illeszkedik:

    ^[^#]_*(0x)*[0-9]+W6.*[a-z]+.+qqriq(A|a)

    (Az utolsó sor végén is legyen \n karakter!)"

    ^ : Sor elején fordul elő a minta
    [^#] : bármilyen karakter, ami nem #
    _* : alsóvonás karakter után tetszőleges számú, bármilyen karakter
    (0x) : :F
    * : utána tetszőleges számú, bármilyen karakter
    [0-9]+ : szám, mely legalább egyszer szerepel
    W6 : W6 ... :F
    . : egy db tetsz. kar.
    * : tetszőleges számú, bármilyen karakter
    [a-z]+ : a-z tartományból legalább egy betű
    .+ : tetsz. kar. legalább egyszer (van ennek értelme? :D)
    qqriq : qqriq...
    (A|a) : 'A' vagy 'a' betű szerepel utána

    Egy-két helyen nem ment az értelmezés.
    Ezenkívül azzal van a gondom, hogy most automatikusan hogyan generáljak egy ilyen szöveget? Mert manuálisan is bevihetnék egy ilyen szöveget, amire ez illeszkedik, de lehet, hogy nem az a feladat lényege (ez nem derül ki világosan számomra)... :F

    Előre is köszi a segítséget! :R

    _* : alsóvonás karakter után tetszőleges számú, bármilyen karakter
    A * azt jelenti, hogy az előtte álló karakter(ek)ből tetszőleges számú van a mintában, tehát itt tetszőleges számú _ karakterről van szó. A tetszőleges szám bármilyen természetes szám lehet, beleértve a nullát is. Ha majd olyanról beszélnek az iskolában, hogy lezárás, vagy egy halmaz lezártja, na ez az :) .

    (0x) :
    * : utána tetszőleges számú, bármilyen karakter

    Lásd az előbbi, tehát erre olyanok fognak illeszkedni, hogy epszilon, 0x, 0x0x, 0x0x0x, stb.

    . : egy db tetsz. kar.
    * : tetszőleges számú, bármilyen karakter

    A . bármilyen karakterre illeszkedik, a .* tehát tetszőleges számú tetszőleges karaktert jelent.

    .+ : tetsz. kar. legalább egyszer (van ennek értelme? )
    Van.

    Arra még figyelj oda, hogy a minta végén nincs ott a sorvége, tehát akkor is illeszkedni fog az adott sorra a minta, ha az illeszkedő rész után további karakterek is vannak a sorban.

Új hozzászólás Aktív témák