Article View: pl.comp.lang.ruby
Article #552Re: Wyrażenia regularne: używanie zmiennych, ilość i kolejnośćznaków - pytania początkującego
From: Mariusz Kruk
Date: Tue, 24 Jul 2007 16:07
Date: Tue, 24 Jul 2007 16:07
54 lines
3466 bytes
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-mailReferences:
<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