Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: DuckD 02 Ledna 2015, 23:36:29

Název: Pomoc s regex + SED (pro scrabble)
Přispěvatel: DuckD 02 Ledna 2015, 23:36:29
Ahoj,potřebuji poradit jak na regulární výraz. Je to pro hledání slova ve scrabble.
Mám slovnik obsahující slova. V něm potřebuji najít slovo začínající na A které obsahuje pouze jeden výskyt dalších písmen a,b,c,d,e,f.

Zkouším a nemohu na to přijít:
Kód: [Vybrat]
cat slovnik.txt | sed -n '/^a[abcdef]/p'
cat slovnik.txt | sed -n '/^a(a|)(b|)(c|)(d|)(e|)(f|)/p'
cat Czech.txt | sed -n '/^k[ameclkář]*$/p'
cat Czech.txt | sed -n '/^[ameclk]*ář$/p'

Poradíte prosím?
Díky!
Název: Re:Pomoc s regex + SED (pro scrabble)
Přispěvatel: Mariocz 03 Ledna 2015, 00:44:42
v tvých pokusech musí znak následovat hned po 'a'

Kód: [Vybrat]
cat slovnik.txt | sed -n '/^a.*[abcdef]/p'
Název: Re:Pomoc s regex + SED (pro scrabble)
Přispěvatel: donny 03 Ledna 2015, 12:19:39
Regularni vyraz:

grep -P '^b(?!.*?(.).*?\1)[abcdef]*$' slovnik.txt

- prvni zvyraznene "b" je "b", kterym musi text zacinat (muze to byt i vice pismen za sebou)
- ta zavorka (?! ... ) - negativni reference - zabranuje opakovani znaku (tj. "nesmi projit to, ze se najde 'co nejmensi shoda nula ci vice libovolnych znaku' nasledovanych nejakym (nazveme ho REF) znakem nasledovanym 'co nejmensi shodou nula ci vic libovolnych znaku' nasledovanych tim REF znakem")
- ta dalsi zvyraznena pismena v zavorce abcdef jsou ta dalsi pismena, ktera maji tvorit slova ze slovnik.txt, pricemz se zadne nesmi opakovat.

Tento regex ma to omezeni, ze ho nelze pouzit, pokud potrebujeme slovo, ve kterem se nejake znaky opakuji (nepocitaje v to prvni pismeno/pismena - viz zvyraznene "b").
Název: Re:Pomoc s regex + SED (pro scrabble)
Přispěvatel: ntz_reloaded 03 Ledna 2015, 15:03:10
v tvých pokusech musí znak následovat hned po 'a'

Kód: [Vybrat]
cat slovnik.txt | sed -n '/^a.*[abcdef]/p'
tohle je:

zacina na "a" a nasleduje libovolny retezec cehokoliv a konci na jeden ze znaku v [] ...

Jinak to se podle me neda udelat regularnim vyrazem .. a pokud to udelas, tak to bude nejakej extremni a dlouhej hnus
Název: Re:Pomoc s regex + SED (pro scrabble)
Přispěvatel: DuckD 04 Ledna 2015, 21:34:56
Ok, díky chlapy!