Я хочу написать выражение регулярного выражения для следующего текста - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь разобрать текст этого формата:

1-й окружной окружной суд США по делам НЬЮ-ЙОРКА Южный окружной судья СМИТ, ДЖОН Т., JR

В тексте я хочу записать:

Имя цепи: В приведенном выше примере 1-я цепь.Номер цепи может быть между 1-м и 99-м.Эта информация не всегда там.

Название штата: В тексте выше, НЬЮ-ЙОРК, ЮЖНАЯ.Это может быть не более трех слов.Эта информация не всегда там.

Название: Это может быть район или магистрат.

Фамилия: Здесь это СМИТ

Имя: Имя: JOHN T., JR

Чтобы прояснить мою проблему, позвольте мне привести еще два примера текста, который я хочу проанализировать.

15-й окружной окружной суд США для судьи ALABAMA Мировой судья NEELY, ЕКАТЕРИНА

Мировой судья КУК, ТОМАС М

Я пыталсяследующее выражение.Ему удалось запечатлеть имя судьи, но не удалось запечатлеть схему и состояние.

((?P<circuit>\d{1,2}\w{2} Circuit)?\s?(U\.S\. District Court for )?\s?(? 
P<state>\b[A-Z]*(\s[A-Z]*)\b)*)?.* (?<=Judge )(?P<lname>[A-Z]*), (?P<name> 
[A-Z,. ]*)( {1,2}\(.*\))?

Большое спасибо.

1 Ответ

0 голосов
/ 07 февраля 2019

Это должно помочь.

import re


s = ["1ST Circuit U.S. District Court for NEW YORK SOUTHERN District Judge SMITH, JOHN T., JR", "15TH Circuit U.S. District Court for ALABAMA Magistrate Judge NEELY, CATHERINE"]

for sVal in s:
    m = re.search(r"((?P<circuit>\d*(ST|TH) Circuit)) U.S. District Court for (?P<state>\b[A-Z\s]*\b)(?P<title>(District|Magistrate)) Judge (?P<lname>[A-Z]*), (?P<name>.*$)", sVal)
    if m:
        for i in ["circuit", "state", "title", "lname", "name"]:
            print(m.group(i))
    print("-----")

Вывод:

1ST Circuit
NEW YORK SOUTHERN 
District
SMITH
JOHN T., JR
-----
15TH Circuit
ALABAMA 
Magistrate
NEELY
CATHERINE
-----
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...