Python 正则表达式:从文本中提取一些信息

Python 正则表达式:从文本中提取一些信息,python,regex,Python,Regex,我有一个数据框,它是它的一部分 Судебный участок № 24 в Павлоградском судебном районе Омской области Судебный участок № 4 в Горьковского судебного района Омской области Судебный участок № 5 в Знаменском судебном районе Омской области Судебный участок № 19 в Оконешни

我有一个数据框,它是它的一部分

Судебный участок № 24 в Павлоградском судебном районе Омской области
Судебный участок № 4 в Горьковского судебного района Омской области
Судебный участок № 5 в Знаменском судебном районе Омской области
Судебный участок № 19 в Оконешниковском судебном районе Омской области
Судебный участок № 9 в Кормиловском районе Омской области
Судебный участок № 29 в Таврическом судебном районе Омской области
Судебный участок № 30 в Таврическом районе Омской области
Судебный участок № 44 Кировского судебного района в городе Омске
期望输出

Павлоградском судебном районе
Горьковского судебного района
Знаменском судебном районе
Оконешниковском судебном районе
Кормиловском районе
Таврическом судебном районе
Таврическом районе
Кировского судебного района
我尝试使用正则表达式

[А-Я][А-Яа-я-]+\s+[а-я\s]*\s*(?:округа|район(?!а|е|у|ого))
但它只返回类似于的函数。其他的是空的。 之后,我改变了这个表达式,并尝试使用

[А-Я][А-Яа-я-]+\s+[а-я\s]*\s*(?:округа|район((?!а|е|у|ого).)*)
例如,它返回数据,但不返回单词的结尾

Горьковского судебного район
反而

Горьковского судебного района
我认为使用
让我们使用不需要的单词。(对我来说,不需要这些词的结尾)


我应该如何将此表达式更改为获取欲望输出?

使用负向前看,如果
ааааа
а
а
后接
аа
,则所有匹配失败

改为使用非捕获组。将
(?!||||||||||||||||||||||||||||||||||||||124

整个正则表达式看起来像

r'[А-ЯЁ][А-ЯЁа-яё-]+\s+[а-яё\s]*\s*(?:округа|район[а-яё]*)'
或者,如果只想将字符串作为整个单词进行匹配,则使用单词边界:

r'\b[А-ЯЁ][А-ЯЁа-яё-]+\s+[а-яё\s]*\s*(?:округа|район[а-яё]*)\b'

如果要将正则表达式与
str.extract
一起使用,则需要使用括号将模式括起来:

df['col'].str.extract(r'\b([А-ЯЁ][А-ЯЁа-яё-]+\s+[а-яё\s]*\s*(?:округа|район[а-яё]*))\b')

我试过了。如果我使用它,它不会捕捉到Petrportov中的
ССааааааааааааааааааааааааа。再试一次。@Petrperov如果您使用
str.extract
,请用
(…)
@WiktorStribiżew包装图案,是的。非常感谢。我接受了你的回答