Я работаю над программой, которая извлекает такие строки:
s = 'GPA: 3.4 GRE: 317 Round: Round 2 | West'
d = 'GPA: 3.7 GRE: 328 Round: Round 3 | Singapore'
a = 'GPA: undergrad: 3.68 grad: DPT 3.32 GMAT Waiver Round: Round 3'
c = 'GPA: 3.2 GMAT: 750 Round: Rolling Admissions | NY'
До сих пор я просто считывал количество раундов с помощью выражений re. Но для некоторых исключений, таких как c, мне нужно, чтобы он также возвращал «скользящие допуски». Есть ли способ получить данные между кругом и знаком трубы.
Я делал вот так:
R = re.findall('\S*Round ([a-zA-Z0-9]+)', d)
print(''.join(R))
2 ответа
Регулярное выражение ниже получает значение между двумя разделителями Round:
и |
.
import re
c = 'GPA: 3.2 GMAT: 750 Round: Rolling Admissions | NY'
R = re.findall('Round\: (.*?) \|', c)
print(R) # output: 'Rolling Admissions'
Редактировать: Отметил, что есть несколько случаев, когда знак трубы недоступен. Использование следующего будет искать строку после Round:
и перед |
или до конца строки
import re
s = 'GPA: 3.4 GRE: 317 Round: Round 2 | West'
d = 'GPA: 3.7 GRE: 328 Round: Round 3 | Singapore'
a = 'GPA: undergrad: 3.68 grad: DPT 3.32 GMAT Waiver Round: Round 3'
c = 'GPA: 3.2 GMAT: 750 Round: Rolling Admissions | NY'
print(re.findall('Round: (.*?) ($|\|)', s)) #output: [('Round 2', '|')]
print(re.findall('Round: (.*?) ($|\|)', d)) #output: [('Round 3', '|')]
print(re.findall('Round: (.*?) ($|\|)', a)) #output: [('Round 3 ', '|')]
print(re.findall('Round: (.*?) ($|\|)', c)) #output: [('Rolling Admissions', '|')]
Вам просто нужно будет получить первый элемент, и это будет ваше запрошенное значение.
Например.
value = re.findall('Round: (.*?) ($|\|)', c)) #output: [('Rolling Admissions', '|')]
print(value[0][0]) # since the output is a tuple within a list
Ну вот
c = 'GPA: 3.2 GMAT: 750 Round: Rolling Admissions | NY'
c.split('|')[0]
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.