Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 11, 2017 19:51:41

dobriy_dada
Зарегистрирован: 2015-09-04
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

регулярные выражения вопрос

Здравствуйте, подскажите пожалуйста, требуется произвести поиск по различным строкам и выбрать только те, которые начинаются со слова “University”, а потом выбрать ту часть строки, которая идёт после запятой. Например выражение:
University Park, Los Angeles
Вот такой код

 (?<=^University\s).+
выдаёт строку
"Park, Los Angeles"
Как изменить код, чтобы оставался только
 "Los Angeles"
?

Заранее спасибо :-)

Отредактировано dobriy_dada (Янв. 11, 2017 19:52:32)

Офлайн

#2 Янв. 11, 2017 20:30:09

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

регулярные выражения вопрос

 (?<=, ).+

Офлайн

#3 Янв. 12, 2017 00:53:02

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9998
Репутация: +  857  -
Профиль   Отправить e-mail  

регулярные выражения вопрос

  
>>> import re
>>> 
>>> text = 'University Park, Los Angeles'
>>> 
>>> match = re.search(r'^University [^,]+, (.*)', text)
>>> if match is not None:
...     match.group(1)
... 
'Los Angeles'
>>>



Офлайн

#4 Янв. 12, 2017 03:19:46

dobriy_dada
Зарегистрирован: 2015-09-04
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

регулярные выражения вопрос

py.user.next, спасибо, но здесь другой код, у меня такой (используется pandas):

 df['RegionName1'] = df['Temp'].str.extract('((?<=^University\s[^,]).+(?=\())')
Вообщем строка такая:
 "University Park, Los Angeles (University of Southern California)"

После выполнения кода получается такая строка
 ark, Los Angeles
Если я вставляю + после квадратных скобок - так
 df['RegionName1'] = df['Temp'].str.extract('((?<=^University\s[^,]+).+(?=\())')
То выводится ошибка error: look-behind requires fixed-width pattern

Отредактировано dobriy_dada (Янв. 12, 2017 03:20:42)

Офлайн

#5 Янв. 12, 2017 04:41:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9998
Репутация: +  857  -
Профиль   Отправить e-mail  

регулярные выражения вопрос

  
>>> import re
>>> 
>>> text = 'University Park, Los Angeles (University of Southern California)'
>>> 
>>> match = re.search(r'^University [^,]+, (.*) \(', text)
>>> if match is not None:
...     match.group(1)
... 
'Los Angeles'
>>>

dobriy_dada
После выполнения кода получается такая строка
Ну, всё правильно получается. Скопируй мой шаблон туда.



Отредактировано py.user.next (Янв. 12, 2017 04:44:16)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version