1

Тема: Regex формула

Потрібно відфільтрувати слова, що записані великими літерами на початку рядка та закінчуються комою.
Я спробував r'\b^[А-ЩЬЮЯҐЄІЇ],$\b', але не отримав бажаного результату.
Потрібно саме слово(слова) без коми. Може бути одне слово, а може кілька("АБ ОВО", наприклад).
Присутні апострофи та дефіси всередині слова(слів).

2

Re: Regex формула

Вибачте, а ви в курсі, що означає ^ та $?

Подякували: Teg Miles1

3

Re: Regex формула

Початок і кінець рядка.

4

Re: Regex формула

Тобто, мається на увазі перше слово у рядку, що починається з великої букви та закінчується комою?

5 Востаннє редагувалося Teg Miles (17.03.2023 22:51:09)

Re: Regex формула

Там усе слово великими літерами, починається на початку рядка. "$" там зайве, бо на слові рядок не закінчується.
Це в іншому пошуку у мене було одне слово в рядку, звідки переніс зайву "$".
Інше питання: якщо є два і більше фільтри Regex(пошук по словниках із різним форматуванням),
то чи можна записати ці різні Regex-фільтри якось через "або", чи треба кожного разу новий пошук ініціювати по кожному фільтру?

Щодо попереднього питання, то ось таке r'\b^[А-ЩЬЮЯҐЄІЇ \-,\']+\b' працює, хоча з апострофами може бути клопіт,
є кілька варіантів написання їх.

6

Re: Regex формула

Типу так має працювати?

Прихований текст

https://i.ibb.co/bBR2DYT/image.png

7

Re: Regex формула

wander написав:

Типу так має працювати?

Прихований текст

https://i.ibb.co/bBR2DYT/image.png

Так.

8

Re: Regex формула

Vitaliy_Danmer написав:

чи можна записати ці різні Regex-фільтри якось через "або"

шаблон|шаблон - пошук одного з двох шаблонів.
Але якщо є різні словники з різним форматуванням, то логічніше було б застосовувати відповідні регулярки лише для одного словника.

Подякували: Teg Miles1

9

Re: Regex формула

^[А-ЯA-Z].+,$

^ початок рядка.
[А-ЯA-Z] будь-які великі літери, кирилиці чи латинь.
.+ один або декілька символів будь-якого типу.
, кома.
$ кінець рядка.

10

Re: Regex формула

Узагалі з літерами постійна халепа. І, наприклад, не в діапазоні А-Я.
Wiktor Stribiżew на StackOverflow радить у таких випадках використовувати модуль regex замість стандартного re, він підтримує класи символів \p{Lu} та [[:upper:]].

Також раджу для кращого розуміння регексів використовувати візуалізатори, на кшталт https://regex-vis.com/ або https://www.debuggex.com/
(от, до речі, де блок-схеми ще живуть)

Ну, або взагалі забити на регекси і написати звичайну функцію з isupper().

Подякували: Betterthanyou1

11

Re: Regex формула

str.isupper()

Подякували: Betterthanyou, leofun012

12

Re: Regex формула

/ot A, baću, koala vźe napısav 4 xv. tomu. Prosto maju zvıćku vôdkrıvatı vsji nećıtani temı z aktivnıx i poćıtovatı.

13

Re: Regex формула

dot написав:

/ot A, baću, koala vźe napısav 4 xv. tomu. Prosto maju zvıćku vôdkrıvatı vsji nećıtani temı z aktivnıx i poćıtovatı.

Та те саме. Причому я ще можу по пів години відповідь писати. Не варто вибачатися, ну буде ще одна правильна відповідь :)