Wyszukiwanie zdań za pomocą wyrażenia regularnego

0

Cześć!
Mam do rozwiązania następujący problem.W tekscie wyszukać zdanie,mając podane litery które są pierwszymi literami słów tego zdania.
np. w tekscie:

Litwo! Ojczyzno maja! Ty jesteś jak zdrowie, 
Ile cię trzeba cenić, ten tylko się dowie, 
Kto cię stracił.

Po wyszukaniu liter: l,o,m,t,j,j,z program podkreśli pierwsze zdanie.(może to być w wordzie gdziekolwiek szczerze mówiąc byle działało ;)

Kolejność wyszukiwanych liter ma znaczenie i musi być taka sama jak w zdaniu.
Prosiłbym o pomoc niestety moje wykształcenie nie jest związane w jakikolwiek sposób z informatyka.
Z góry dziękuje

dodanie znacznika <code> - @furious programming

0

Chyba nie rozumiem pytania. Chcesz znaleźć w tekscie linie, w których znajdują się litery l,o,m,t,j,j,z, dokładnie w tej kolejności?

0

Polecenie nie jest poprawne albo przykład nie jest. Bo zdania z zasady oddzielone są kropkami / wykrzyknikami etc. Więc pierwsze zdanie to samo Litwo! a nie cała linijka. Tak czy siak, na oko to będzie
l,o,m,t,j,j,z
l\w+ o\w+ m\w+ t\w+ j\w+ j\w+ z\w+[.!?]
przy założeniu że najpierw zrobimy na wszystkich znakach lowercase a \w to klasa oznaczająca przynajmniej [a-z]

0

Ok macie racje po wykrzykniku jest koniec zdania nie doprecyzowałem chodzi o wskazanie przez program całej linijki.
Np po wpisaniu do programu liter : l,o,m,t,j,j,z
program zwraca tą linijke : Litwo! Ojczyzno maja! Ty jesteś jak zdrowie, bo : Litwo Ojczyzno Moja Ty Jesteś Jak Zdrowie, podane przez nas litery odpowiadają pierwszym literą słów występujących w tym własnie wersie.

Własnie o taki typ wyszukiwania mi chodzi.

`dodanie znaczników ``` - @furious programming

0

No to widzisz ;] Ale generalnie idea jest taka sama jak napisałem wyżej, musisz tylko wziąć pod uwagę że pomiędzy każdym słowem może być spacja .!? i że na końcu jest znak nowej linii. Więc wystarczy zrobić sobie wzorzec na zasadzie
literka\w+[ .!?]+ dla każdej literki, sklejasz to sobie do kupy a na koniec dodajesz \n i voila.

0

Dzięki za odpowiedzi dodam że możemy przyjąć za koniec wersu ostatnii przecinek.

Jeśli dobrze zrozumiałem dla liter l,om,t,j,j,z

l\w+ o\w+ m\w+ t\w+ j\w+ j\w+ z\w+[ .!?]+\n
wrzucam to sobie do znajdź w wordzie ? wyskakuje mi tylko że tekst zawiera wyrażenie nie dopasowane do wzorca ;/
i sie zacina ..

Chyba że chodzi o takie wyrażenie ??

l\w+[ .!?]+ o\w+[ .!?]+ m\w+[ .!?] +t\w+[ .!?] +j\w+[ .!?]+ j\w+[ .!?]+ z\w+[ .!?]+\n
Zdrobiłem też tak ale w dalszym ciągu taki sam komunikat.
Sory że jeden post pod drugim ale nie moge edytować

dodanie znaczników <code> - @furious programming

0

Word nie pozwala szukać regexpami raczej ;] Notepad++ ma taką opcję.
No i weź pod uwagę że literka może być duża lub mała ;)

0

Wyszukiwałem w notepadzie ++ możesz zerknąć uwzględniłem litery tak żeby się zgadzało dokładnie :

L\w+[ .!?]+ O\w+[ .!?]+ m\w+[ .!?] +T\w+[ .!?] +j\w+[ .!?]+ j\w+[ .!?]+ z\w+[ .!?]+\n

dodanie znacznika <code> - @furious programming

2

Pod OpenOffice Writer zadziała to:
[Ll]\w?\w*.? [Oo]\w?\w*.? [Mm]\w?\w*.? [Tt]\w?\w*.? [Jj]\w?\w*.? [Jj]\w?\w*.? [Zz]\w?\w*.?

0

Dzięki za odpowiedzii :) Chciałem jeszcze zapytać czy jest możliwość pominięcia w wyszukiwaniu lub usuniecia z dokumentu wybranych przeze mnie słów np. W,Z,który,którykolwiek.
Chodzi o to by wyszukiwało linijke w której jest np.słowo Wątek ale nie wyszukało W lesie.
Albo po prostu żeby usunąć takie pojedyncze litery ale za jednym razem.

Wymyśliłem coś takiego [W]+[:space:]|może|który|wkońcu|Ty jest okey?

0

Ale musisz to robić tak śmiesznie przez worda czy coś? Bo ja bym zwyczajnie machnął jakiś skrypt / program na kilka linijek, bo to wszystko robiłoby sie prościej. Zarówno usuwanie interpunkcji, usuwanie slów ze stop-listy (bo tak sie nazywa to o co teraz pytasz http://pl.wikipedia.org/wiki/Wikipedia:Stopwords ), robienie calego tekstu lower-case i tak dalej.

0

W tym rzecz że nie potrafie programować ;) pisać skryptów itp potrzebuje tylko pewnych rozwiązań do jednego problemu.Na codzień z programowaniem mam <ort>nie wiele</ort> wspólnego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1