Potrzebuję pomocy w RegExp

Chcę w słowniku znaleźć wyrazy zaczynające się z dużej litery
np takie jak:

Ząbek
Żabka
Żłobek
Żrący

Jakie powinno być polecenie w RegExp?
już mam \b[A-Z]|[ĄĆĘŁŃÓŚŹŻ]

https://regex101.com/r/xAfZqE/1

            https://regex101.com/r/xAfZqE/2
\b[A-ZĄĆĘŁŃÓŚŹŻ][a-ząćęłńóśźż]+
 
\b[A-Ż][a-ż]+

W notepad++ oba znajdują po 4 wyrazy (może trochę głupieją w innych językach niż PHP).


Widać to drugie nie może działać.

to: \b[A-Ż][a-ż]+
zaznacza również np. wieża http

1 polubienie

a jak ma wyglądać polecenie dla wyrazów
zaczynających się z dużej litery,
cz w środku
i nie może kończyć się na “a”.

np. Podręcznik

a Paczka już nie.

PS. używam edytor AkelPad, ale to chyba nie ma znaczenia.

1 polubienie

https://regex101.com/r/HrBHpF/2/

\b[A-ZĄĆĘŁŃÓŚŹŻ][a-ząćęłńóśźż]+[^a\s]\b

https://regex101.com/r/HrBHpF/3/

\b[A-ZĄĆĘŁŃÓŚŹŻ][a-ząćęłńóśźż]+[b-ząćęłńóśźż]\b

Paczka jest pomijana. OK
ale, to też zaznacza chociaż nie ma “cz”

Wisząc
Zaszyć
Żłobiąc
Żółw

1 polubienie

https://regex101.com/r/1EjHjM/5

\b[A-Ż]*cz[a-ż]*[^a\s]\b

Teraz działa mi wykluczanie AkelPad (bardzo ciekawe) - widać składni poprzedniej nie tolerował chyba wtedy jeszcze nie przestawiłem by szukał od nowa (początku pliku / wprowadzonego tekstu).


https://regex101.com/r/1EjHjM/6

\b[A-Ż]*cz[a-ż]*[b-ż]\b

zaznacza również z małej litery:
początek
kończy
+++++++++++++++++
te powinno zaznaczyć:
Początek
Podręcznik
Żaczek

a te już nie:
kończy
początek
podręcznik

paczka
Paczka
żaczek
żaczka
Żaczka

1 polubienie

https://regex101.com/r/IgJNni/4

\b([A-ZĄĆĘŁŃÓŚŹŻ]+[a-ząćęłńóśźż]*)(cz)([a-ząćęłńóśźż]*[^a\s])\b

https://regex101.com/r/BUsRNX/4

\b[A-ZĄĆĘŁŃÓŚŹŻ]+[a-ząćęłńóśźż]*(cz)[a-ząćęłńóśźż]*[b-ząćęłńóśźż]\b

Poprawka #3 bo nie znajdowało “Podręcznikówę” (chodziarz to wyraz z błędem).

Dzięki, oba polecenia są dobre.
Nie idzie je złamać :slight_smile:
jedynie tylko znaki plus można wyeliminować.

PS a te zz w poleceniu musi być?

Nie musi - koślawe kopiowanie po odkryciu że zakresy Ą-Ź / ą-ż są za szerokie.

Mam banalny problem.
Jak wynajdywać wszystkie wyrazy składające się z 2 lub jednej litery?

1 polubienie
(\b[A-Za-z][A-Za-z]\b)|(\b[A-Za-z]\b)

regex

Rozszerzyć o polskie znaki też można by znajdowało “ją” / “są” itd. - na razie tego nie dopracowałem.
A przynajmniej by nie zaznaczało z takiego wyrazu pierwszej litery.

(^[A-ZĄĆĘŁŃÓŚŹŻ][a-ząćęłńóśźż]\b)|(^[A-ZĄĆĘŁŃÓŚŹŻ]\b)

chyba to działa, dzięki
http://regexstorm.net/tester
ś
śą
śa
łam
Ż
ż
ńa
ńą
Ćm
Ćma

1 polubienie