🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #552

Re: Wyrażenia regularne: używanie zmiennych, ilość i kolejnośćznaków - pytania początkującego

#552
From: Mariusz Kruk
Date: Tue, 24 Jul 2007 16:07
54 lines
3466 bytes
epsilon$ while read LINE; do echo ">$LINE"; done < lukaszj
>Mam taki problem: piszę program który pobiera od użytkownika pewien
>zestaw znaków i przechowuje w zmiennej (powiedzmy "pobrane").
>Następnie posiadam tablicę strignów. Program ma porównywać te stringi
>i wypisać te które zgadzają się z zestawem podanych wcześniej znaków,
>np.
>
>pobrane = "kot"
>
>a tablica = ["kot", "kto", "kotek", "ktokolwiek"]
>
>i wypisać ma TYLKO "kot" i "kto"
>
>Nie mam pojęcia jak to zrobić. Używanie wyrażeń regularnych np /
>#{pobrane}/ po uprzednim poprawieniu (np. uzyskując /[kot]/) nie
>rozwiązuje sprawy. Wypisywać powinno tylko słowa które składają się z
>liter ze zmiennej pobrane - każdy znak może być użyty tylko raz!.

Co to znaczy "każdy znak może być użyty tylko raz"?
Użytkownikowi nie wolno wpisać "rabarbar"?

>Litery w zmiennej pobrane mogą się powtarzać (przy czym słowo z
>tablicy może być krótsze i nie używać wszystkich znaków ze zmiennej
>pobrane). Kolejność w badanym elemencie tablicy jest dowolna (jak w
>przykładzie "kot" i "kto") byleby słowo z tablicy składało się po
>jednym maksymalnie znaku z "pobrane".

To po co Ci w tablicy "kotek" albo "ktokolwiek", skoro litery mają być
parami różne?

>Mam nadzieję że wyraziłem się dostatecznie jasno.

Nie do końca.

>Nie oczekuję
>gotowego programu (chociaż nim nie pogardzę :D) i będę wdzięczny za
>każdą uwagę pomocną przy rozwiązaniu.
>
>Same wyrażenia regularne są czymś nowym, nieznanym mi wcześniej.
>Problem mam właśnie z uzyskaniem takiego formatu który nie określa z
>góry kolejności znaków i nie zakłada użycia wszystkich z zestawu ale
>zakłada nie użycie więcej niż z danego zestawu.

Regexpami tego nie załatwisz. (tu się przydaje poczytanie o tym czym są
regexpy i jak się mają do automatów)

Najpierw sprecyzuj pytanie, bo na razie przedstawiłeś problem trochę
mętnie. A potem pomyśl nad zliczaniem liter.

-- 
d'`'`'`'`'`'`'`'`'`'`'`'`'Yb Leaders not followed by proper glue(TeX)
`b  Kruk@epsilon.eu.org   d' 
d' http://epsilon.eu.org/ Yb 
`b,-,.,-,.,-,.,-,.,-,.,-,.d' 
Technical Details
Message-ID: <slrnfac8tb.obi.Mariusz.Kruk@epsilon.rdc.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!epsilon.rdc.pl!not-for-mail
References: <1185286569.537232.202600@w3g2000hsg.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!epsilon.rdc.pl!not-for-mail
From: Mariusz Kruk <Mariusz.Kruk@epsilon.eu.org>
Newsgroups: pl.comp.lang.ruby
Subject: Re: Wyrażenia regularne: używanie
 zmiennych, ilość i
 kolejnośćznaków - pytania
 początkującego
Date: Tue, 24 Jul 2007 18:07:07 +0200
Organization: Samodzielna, Całkowicie Oddana, Trupa
 Terminatorów. Astronauci TakżeAtakują
 Czasami Ale Mało Aktywnie
Lines: 54
Message-ID: <slrnfac8tb.obi.Mariusz.Kruk@epsilon.rdc.pl>
References: <1185286569.537232.202600@w3g2000hsg.googlegroups.com>
NNTP-Posting-Host: epsilon.eu.org
Mime-Version: 1.0
X-Trace: nemesis.news.tpi.pl 1185293576 29241 195.117.53.19 (24 Jul 2007 16:12:56 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Tue, 24 Jul 2007 16:12:56 +0000 (UTC)
X-Truskawki: Z cukrem i śmietaną
User-Agent: slrn/0.9.8.1pl2 (Debian)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit