Получить строку после символа в Python - PullRequest
0 голосов
/ 19 ноября 2018

Получение строки, которая идет после символа '%' и должна заканчиваться перед другими символами (без цифр и символов).например:

string = 'Hi %how are %YOU786$ex doing'

должен вернуться в виде списка.

['how', 'you']

Я пытался

string = text.split()

sample = []

for i in string:
    if '%' in i:
        sample.append(i[1:index].lower())
return sample

, но я не знаю, как избавиться'you786$ex'. РЕДАКТИРОВАТЬ : я не хочу импортировать re

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

Это проще всего сделать с помощью re.findall():

import re
re.findall(r'%([a-z]+)', string.lower())

Возвращает:

['how', 'you']

Или вы можете использовать str.split() и перебирать символы:

sample = []
for token in string.lower().split('%')[1:]:
    word = ''
    for char in token:
        if char.isalpha():
            word += char
        else:
            break
    sample.append(word)

sample станет:

['how', 'you']
0 голосов
/ 19 ноября 2018

Используйте Regex (Регулярные выражения).

Сначала создайте шаблон Regex для вашей задачи.Вы можете использовать онлайн-инструменты, чтобы проверить это.См. Регулярное выражение для вашей задачи: https://regex101.com/r/PMSvtK/1

Затем просто используйте это регулярное выражение в Python:

import re

def parse_string(string):
    return re.findall("\%([a-zA-Z]+)", string)

print(parse_string('Hi %how are %YOU786$ex doing'))

Вывод:

['how', 'YOU']
0 голосов
/ 19 ноября 2018

Вы можете использовать регулярное выражение.

>>> import re
>>> 
>>> s = 'Hi %how are %YOU786$ex doing'
>>> re.findall('%([a-z]+)', s.lower())
>>> ['how', 'you']

regex101 Подробнее

...