Niepożądane znaki


(sexy69bis) #1


Jak sprawdzić w dużym tekście, czy takie znaki występują?


(Aranthor) #3

Na przykład za pomocą wyrażeń regularnych:

(?<!\r)\n

End Of File


(krystian3w) #4

https://stackoverflow.com/questions/1171284/regex-to-match-eof - uzupełniając regexy


(sexy69bis) #5

Niestety, to wyszukuje wszystko [rn] i [n]


(krystian3w) #6

Masz nauczkę nie malować strzałką i napisać by najlepiej było to rozbite na osobne wyszukiwania.


(sexy69bis) #7

Strzałkę namalowałem, aby pokazać z jakim znakiem mam problem :grinning:

Lektor do napisów filmowych IVONA, czyta

może 2030 lat
a powinien
może 20 30 lat


(krystian3w) #8

https://stackoverflow.com/questions/406230/regular-expression-to-match-a-line-that-doesnt-contain-a-word - może uda ci się to wykorzystać do znaleźnia n i zastąpienia pewnie tabulatorem.


(sexy69bis) #9

Przez skrypt VBS, mogę to namierzyć:
pozycja = InStr(1, Text(nr), Chr(10), 1)

ale, przez RegExp nie potrafię.


(Aranthor) #10

Jakiego edytora tekstu używasz? Testowałem to wyrażenie regularne w Notepadzie++ i działa, jak należy.


(sexy69bis) #11

AkelPad.


(Aranthor) #12

Zamieniłem znaki \r i \n na ich heksadecymalną reprezentację i twój edytor tekstu prawidłowo wykrywa znaki końca linii:

(?<!\x0D)\x0A

(sexy69bis) #13

Działa dobrze, dzięki.


(sexy69bis) #14

A tu coś nowego.

Chcę sprawdzić czy zdanie kończy się “tylko małą” literą,
również polską, aby dodać kropkę.
wykluczone są cyfry i znaki: “.,!?” oraz imię Max na końcu zdania.
Lektor IVONA czyta “Max.” jako “maximum”)

Nie mogę utworzyć wzoru w RegExp, aby spełniał te warunki.
Chyba nie da rady sprawdzić, czy coś istnieje i jednocześnie czy coś innego nie istnieje.