Wyszukiwanie zdań za pomocą wyrażenia regularnego

Odpowiedz Nowy wątek
2014-12-24 19:25
Adas1234
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

edytowany 1x, ostatnio: furious programming, 2016-12-13 18:26

Pozostało 580 znaków

2014-12-24 20:33
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?

edytowany 2x, ostatnio: dam1an, 2014-12-24 20:34

Pozostało 580 znaków

2014-12-24 21:02
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]


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.
edytowany 1x, ostatnio: Shalom, 2014-12-24 21:02

Pozostało 580 znaków

2014-12-24 21:29
Adas1234
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

edytowany 1x, ostatnio: furious programming, 2016-12-13 18:26

Pozostało 580 znaków

2014-12-24 21:32
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.


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.
edytowany 1x, ostatnio: Shalom, 2014-12-24 21:33

Pozostało 580 znaków

2014-12-24 21:34
Adas1234
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

edytowany 1x, ostatnio: furious programming, 2016-12-13 18:26

Pozostało 580 znaków

2014-12-24 21:57
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 ;)


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.
edytowany 1x, ostatnio: Shalom, 2014-12-24 21:58
Pozwala, tylko że tam inna składnia. - _13th_Dragon 2014-12-24 23:12

Pozostało 580 znaków

2014-12-24 22:13
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

  • 1.jpg (0,1 MB) - ściągnięć: 82
edytowany 1x, ostatnio: furious programming, 2014-12-24 22:30
Wstawiaj te wyrażenia w jakieś znaczniki, choćby &lt;code&gt;, aby wyróżnić je z tekstu... - furious programming 2014-12-24 22:30

Pozostało 580 znaków

2014-12-24 23:21
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*.?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Dzięki super działa :) o to mi chodziło sa tam jakies problemy z znakami ,,-" ale to detale - Adas124 2014-12-24 23:55

Pozostało 580 znaków

2014-12-25 10:37
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łoW 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?

edytowany 1x, ostatnio: Adas124, 2014-12-25 11:05

Pozostało 580 znaków

2014-12-25 15:51
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.


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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