Учитывая шаблон строки с переменной, как найти и найти переменную строку с помощью Python? - PullRequest
0 голосов
/ 16 февраля 2019
pattern = "world! {} "
text = "hello world! this is python"

Учитывая шаблон и текст выше, как мне создать функцию, которая будет принимать шаблон в качестве первого аргумента и текст в качестве второго аргумента и выводить слово 'this'?

например.

find_variable(pattern, text) ==> возвращает «это», потому что «это»

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Не один лайнер, как у Анубхавы, но с использованием базовых знаний Python:

pattern="world!"
text="hello world! this is python"

def find_variabel(pattern,text):
    new_text=text.split(' ')

    for x in range(len(new_text)):
        if new_text[x]==pattern:
            return new_text[x+1]

print (find_variabel(pattern,text))
0 голосов
/ 16 февраля 2019

Вы можете использовать эту функцию, которая использует string.format для построения регулярных выражений с одной захваченной группой:

>>> pattern = "world! {} "
>>> text = "hello world! this is python"
>>> def find_variable(pattern, text):
...     return re.findall(pattern.format(r'(\S+)'), text)[0]
...
>>> print (find_variable(pattern, text))

this

PS: Вы можете добавить здравомыслиепроверяет внутри вашей функции для проверки формата строки и успешного findall.

Code Demo

...