Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #30665 > unrolled thread

regexp i szukanie słów bez kropki

Started byRoman Tyczka <noemail@because.no>
First post2017-09-08 12:32 +0200
Last post2017-09-14 12:19 +0200
Articles 8 — 4 participants

Back to article view | Back to pl.comp.programming


Contents

  regexp i szukanie słów bez kropki Roman Tyczka <noemail@because.no> - 2017-09-08 12:32 +0200
    Re: regexp i szukanie słów bez kropki turbopascal60@gmail.com - 2017-09-08 06:56 -0700
      Re: regexp i szukanie słów bez kropki turbopascal60@gmail.com - 2017-09-08 07:28 -0700
        Re: regexp i szukanie słów bez kropki turbopascal60@gmail.com - 2017-09-08 08:44 -0700
    Re: regexp i szukanie słów bez kropki Szyk Cech <szyk100@o2.pl> - 2017-09-08 19:02 +0200
      Re: regexp i szukanie słów bez kropki Szyk Cech <szyk100@o2.pl> - 2017-09-08 20:52 +0200
      Re: regexp i szukanie słów bez kropki slawek <fake@fakeemail.com> - 2017-09-14 09:34 +0200
        Re: regexp i szukanie słów bez kropki Roman Tyczka <noemail@because.no> - 2017-09-14 12:19 +0200

#30665 — regexp i szukanie słów bez kropki

FromRoman Tyczka <noemail@because.no>
Date2017-09-08 12:32 +0200
Subjectregexp i szukanie słów bez kropki
Message-ID<149ikwdbvgypw$.dlg@tyczka.com>
Witam

Kombinuję i coś mi chyba nie jarzy w czaszce.
Mam plik tekstwo, w nim jest obszar zaczynający się od słowa "start" i
kończocy na słowie stop".
W tym obszarze pomiędzy start i stop jest szereg słów pooddzielanych
przecinkami, większość słów ma w swoim wnętrzu kropkę lub dwie. 
Chciałbym wydobyć wszystkie, które tych kropek nie mają. Do tego plik jest
wielolinijkowy (z enterami).
Przykład

...
start
raz.dwa, trzy, cztery.pięć, sześć.siedem.pół, 
osiem, dziewięć, dziesięć, jedenaście.dwanaście.pół
stop
...

i z tego tekstu chcę wydobyć:
trzy
osiem
dzięwięć
dziesięć

Jak ugryźć ten kawałek chleba?

-- 
pozdrawiam
Roman Tyczka

[toc] | [next] | [standalone]


#30669

Fromturbopascal60@gmail.com
Date2017-09-08 06:56 -0700
Message-ID<222a6a6a-f87d-4d18-9df3-63fe3e47b5ef@googlegroups.com>
In reply to#30665
W dniu 8 września 2017 12:32:38 użytkownik Roman Tyczka napisał:

> Jak ugryźć ten kawałek chleba?

Jeżeli środowiskiem jest Windows, to widzę 2 sposoby:
- prościutki program w dowolnym języku, nawet QBasic…
- wkleić tekst do MS Worda lub innego edytora rozpoznającego koniec wiersza, usunąć niepotrzebne fragmenty do START i od STOP,
zamienić "," na "^p", usunąć zbędne znaki typu #32 i tym podobne, zapisać do pliku tekstowego i potem polecenie FIND z opcją /V.
Sposób może mało elegancki, ale skuteczny…

[toc] | [prev] | [next] | [standalone]


#30670

Fromturbopascal60@gmail.com
Date2017-09-08 07:28 -0700
Message-ID<2e970abd-6aea-4476-830a-85733c48dddd@googlegroups.com>
In reply to#30669
W dniu 8 września 2017 15:56:39 użytkownik turbop...@gmail.com napisał:

> Jeżeli środowiskiem jest Windows, to widzę 2 sposoby:
> - prościutki program w dowolnym języku, nawet QBasic…
> - wkleić tekst do MS Worda lub innego edytora rozpoznającego koniec wiersza, usunąć niepotrzebne fragmenty do START i od STOP,
> zamienić "," na "^p", usunąć zbędne znaki typu #32 i tym podobne, zapisać do pliku tekstowego i potem polecenie FIND z opcją /V.
> Sposób może mało elegancki, ale skuteczny…

Tylko to jest, zdaje się, zadanie domowe lub problem na kartkówkę/egzamin z przedmiotu RegExp - to już nie wiem…

[toc] | [prev] | [next] | [standalone]


#30671

Fromturbopascal60@gmail.com
Date2017-09-08 08:44 -0700
Message-ID<0608e764-2140-4e1b-942c-59f598470423@googlegroups.com>
In reply to#30670
W dniu 8 września 2017 16:28:41 użytkownik turbop...@gmail.com napisał:

 
> Tylko to jest, zdaje się, zadanie domowe lub problem na kartkówkę/egzamin z przedmiotu RegExp - to już nie wiem…

Gapa ze mnie, zaczął się już przecież rok szkolny.
Jak tu pisano gdzieś obok - wcisnąłem się chyba ze swoimi radami między wódkę a zakąskę…

[toc] | [prev] | [next] | [standalone]


#30673

FromSzyk Cech <szyk100@o2.pl>
Date2017-09-08 19:02 +0200
Message-ID<oouifq$foo$1@mx1.internetia.pl>
In reply to#30665
> Jak ugryźć ten kawałek chleba?

W 3 krokach:
1. split "start.*stop" - przy założeniu, że nie ma ograniczenia 
wyrażenia na pojedyncze wiersze.
2. split ", |\n" na każdym stringu z p. 1
3. Na każdym splicie z p.2 coś mniejwięcej takiego:

QRegExp lReg(".*[^.].*"); lReg.setMinimal(true);
QStringList lResult;
if(lReg.indexIn(splitN) >= 0) lResult << splitN;

Gdzie splitN to string N ze split w p. 2.
A w lResult są wszystkie słowa bez kropek...

Nie sprawdzałem rozwiązania, ale problem wydaje się być banalny...

[toc] | [prev] | [next] | [standalone]


#30674

FromSzyk Cech <szyk100@o2.pl>
Date2017-09-08 20:52 +0200
Message-ID<oouou7$9bc$1@mx1.internetia.pl>
In reply to#30673
To oczywiście w pętli:
> if(lReg.indexIn(splitN) >= 0) lResult << splitN;

[toc] | [prev] | [next] | [standalone]


#30685

Fromslawek <fake@fakeemail.com>
Date2017-09-14 09:34 +0200
Message-ID<almarsoft.3801431436512005801@news.v.pl>
In reply to#30673
On Fri, 8 Sep 2017 19:02:50 +0200, Szyk Cech <szyk100@o2.pl> wrote:
> Nie sprawdzałem rozwiązania, 
> ale problem wydaje się być banalny...

Jest nawet bardziej banalny niż mogłoby się wydawać.

Po wyodrębnieniu słów wystarczy sprawdzić czy jest w nich jakaś 
kropka. Nawet regex niepotrzebny. Gdyby to zrobić w C, to wystarczy 
strtok i strchar.

[toc] | [prev] | [next] | [standalone]


#30686

FromRoman Tyczka <noemail@because.no>
Date2017-09-14 12:19 +0200
Message-ID<1difllyntt1qd$.dlg@tyczka.com>
In reply to#30685
On Thu, 14 Sep 2017 09:34:44 +0200, slawek wrote:

>> Nie sprawdzałem rozwiązania, 
>> ale problem wydaje się być banalny...
> 
> Jest nawet bardziej banalny niż mogłoby się wydawać.
> 
> Po wyodrębnieniu słów wystarczy sprawdzić czy jest w nich jakaś 
> kropka. Nawet regex niepotrzebny. Gdyby to zrobić w C, to wystarczy 
> strtok i strchar.

A co jeśli ja chcę tym regexpem szukać w plikach za pomocą total
commandera?

-- 
pozdrawiam
Roman Tyczka

[toc] | [prev] | [standalone]


Back to top | Article view | pl.comp.programming


csiph-web