Найти - Пользователи
Полная версия: регулярные выражения вопрос
Начало » Python для новичков » регулярные выражения вопрос
1
dobriy_dada
Здравствуйте, подскажите пожалуйста, требуется произвести поиск по различным строкам и выбрать только те, которые начинаются со слова “University”, а потом выбрать ту часть строки, которая идёт после запятой. Например выражение:
University Park, Los Angeles
Вот такой код
 (?<=^University\s).+
выдаёт строку
"Park, Los Angeles"
Как изменить код, чтобы оставался только
 "Los Angeles"
?

Заранее спасибо :-)
Romissevd
 (?<=, ).+
py.user.next
  
>>> import re
>>> 
>>> text = 'University Park, Los Angeles'
>>> 
>>> match = re.search(r'^University [^,]+, (.*)', text)
>>> if match is not None:
...     match.group(1)
... 
'Los Angeles'
>>>
dobriy_dada
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
py.user.next
  
>>> 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
После выполнения кода получается такая строка
Ну, всё правильно получается. Скопируй мой шаблон туда.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB