我想为下面的tex编写regex表达式

2024-04-25 23:52:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解析此格式的文本:

美国纽约州第一巡回地区法院南区法官史密斯,约翰T.,JR

在文本中,我想捕捉:

电路名称:在上述示例中,第1个电路。电路号可以介于1和99之间。这些信息并不总是存在的。你知道吗

州名:在上述文本中,纽约南部。最多三个字。这些信息并不总是存在的。你知道吗

职务:可以是地区或地方法官。你知道吗

姓:这里是史密斯

姓名:姓名是小约翰·T

为了让我的问题更清楚,让我再举两个我想解析的文本的例子。你知道吗

美国阿拉巴马州第15巡回地方法院法官尼利,凯瑟琳

地方法官库克,托马斯M

我试过下面的表达。它能够捕捉到法官的名字,但未能捕捉到电路和国家。你知道吗

((?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}\(.*\))?

非常感谢。你知道吗


Tags: 文本名称信息示例格式地方名字地区
1条回答
网友
1楼 · 发布于 2024-04-25 23:52:24

这应该会有帮助。你知道吗

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
  -

相关问题 更多 >

    热门问题