BG Development


  Reply to this topicStart new topicStart Poll

> regex израз
TrustHavic
Публикувано на: 25-11-2019, 02:46
Quote Post



Име: Станимир
Група: Потребител
Ранг: Редовен член

Мнения: 407
Регистриран на: 30.04.14



здравейте, трябва ми в голям txt файл да открия по инициалите на трите имена всички съвпадания с тези инициали.

демек само по И П Г(примерно) да ми излязят всички съвпадения като Иванка Петканова Герганова, Иван Петров Георгиев и т.н.

Ако е от значение само на първото име(а не презиме и фамилия) символът се намира на 21 колона.
PMEmail Poster
Top
Feral
Публикувано на: 25-11-2019, 08:28
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 101
Регистриран на: 05.02.17



Ако ще търсиш само специфични инициали,
CODE
\bИ\w+\s+П\w+\s+Д\w+\b

Пък ако искаш всякакви възможни или група
CODE
\b[А-Я]\w+\s+[А-Я]\w+\s+[А-Я]\w+\b

Ако си сигурен, че между имената има само един space може да замениш \s+ само със space-че
И използвай unicode флаг за тоя регекс, не знам с Python ли ще го ползваш, PHP, JS?

QUOTE
Ако е от значение само на първото име(а не презиме и фамилия) символът се намира на 21 колона.

Това с 21вата колона не го разбирам, но ако е от значение -
CODE
^.{20}\b\w+\b
(в multiline режим) ще търси дума почваща от 21ви символ на реда, ако това се има предвид под колона знам ли


--------------------
PMEmail Poster
Top
sailer
Публикувано на: 25-11-2019, 09:46
Quote Post



Име: Александър Георгиев
Група: Потребител
Ранг: Почетен член

Мнения: 2175
Регистриран на: 15.01.07



QUOTE (TrustHavic @ 25-11-2019, 02:46)
здравейте, трябва ми в голям txt файл да открия по инициалите на трите имена всички съвпадания с тези инициали.

демек само по И П Г(примерно) да ми излязят всички съвпадения като Иванка Петканова Герганова, Иван Петров Георгиев и т.н.

Ако е от значение само на първото име(а не презиме и фамилия) символът се намира на 21 колона.

Ще е хубаво да пуснеш няколко реда от тоя файл за да видим точния формат. Отделно сигурен ли си че регулярен израз ще ти свърши работа че гледам някакви колони си споменал?


--------------------
But when I taste rakija
In my head anarhija
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 25-11-2019, 10:05
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3036
Регистриран на: 21.02.18



кво правим ако човека се казва  Ивана-Мария Петкова Захариева-Цветкова


--------------------
https://www.rust-lang.org/
---
" Не може да си на висок пост без да си подкупен. Ще те махнат." - SuN Трола
PMEmail PosterUsers Website
Top
Feral
Публикувано на: 25-11-2019, 10:13
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 101
Регистриран на: 05.02.17



QUOTE (Gamma Goblin @ 25-11-2019, 10:05)
кво правим ако човека се казва  Ивана-Мария Петкова Захариева-Цветкова

Голяма драма icon_biggrin.gif [\w-]

Ако искаш да си по-коректен с регекса [A-Я][а-я]+(-[А-Я][а-я]+)? , щото горния ще хване име от сорта на Иwana

Това мнение е било редактирано от Feral на 25-11-2019, 10:20


--------------------
PMEmail Poster
Top
TrustHavic
Публикувано на: 25-11-2019, 10:30
Quote Post



Име: Станимир
Група: Потребител
Ранг: Редовен член

Мнения: 407
Регистриран на: 30.04.14



QUOTE (Feral @ 25-11-2019, 08:28)
Ако ще търсиш само специфични инициали,
CODE
\bИ\w+\s+П\w+\s+Д\w+\b

Пък ако искаш всякакви възможни или група
CODE
\b[А-Я]\w+\s+[А-Я]\w+\s+[А-Я]\w+\b

Ако си сигурен, че между имената има само един space може да замениш \s+ само със space-че
И използвай unicode флаг за тоя регекс, не знам с Python ли ще го ползваш, PHP, JS?

QUOTE
Ако е от значение само на първото име(а не презиме и фамилия) символът се намира на 21 колона.

Това с 21вата колона не го разбирам, но ако е от значение -
CODE
^.{20}\b\w+\b
(в multiline режим) ще търси дума почваща от 21ви символ на реда, ако това се има предвид под колона знам ли

Супер си! Благодаря, работи перфектно.

Иначе пробвах с Notepad++, ако има значение като просто на find му давам regular expression.

файла е избирателен списък https://mun.sliven.bg/uploads/803DFC10D0C27...115C4186FFCFA9A
PMEmail Poster
Top
Feral
Публикувано на: 25-11-2019, 11:21
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 101
Регистриран на: 05.02.17



За нищо, само поправи регекса, защото гоблина е прав и ще отървеш някоя жена с 2 фамилии
или някоя Мария-Елена-София
CODE
\b[A-Я][a-я]+(-[A-Я][a-я]+)*\s+[A-Я][a-я]+\s*[A-Я][a-я]+(-[A-Я][a-я]+)?\b


Това мнение е било редактирано от Feral на 25-11-2019, 11:24


--------------------
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0