Python есть ли способ подсчитать количество вставок строки в строку? - PullRequest
2 голосов
/ 24 марта 2020

Скажем, скажем, есть строка в python как

'f"{var_1} is the same as {var_2}"'

или что-то вроде

"{} is the same as {}".format(var_1, var_2)

Есть ли способ подсчитать количество строк вставки, которые существуют в строка?

Я пытаюсь создать функцию, которая подсчитывает количество вставок в строку. Это потому, что у меня есть код для генерации второго имени, и он может генерировать 2 или 1 второе имя, и просто для того, чтобы код был согласованным, я бы предпочел, чтобы он подсчитывал количество вставок в строку.

Ответы [ 2 ]

2 голосов
/ 24 марта 2020

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

import re

s = 'f"{var_1} is the same as {var_2}"'

len(list(re.finditer(r'{.+?}', s)))

вывод:

2
0 голосов
/ 24 марта 2020

Для простых случаев вы можете просто посчитать количество открытых фигурных скобок

nsubst = "{var_1} is the same as {var_2}".count("{")

для сложных случаев это, однако, не работает, и нет простого решения, так как вам нужно сделать полный синтаксический анализатор формата или обрабатывать довольно много особых случаев (проблема, например, в экранированных скобках или подстановке вложенных полей в спецификациях формата поля). Более того, для f-string s вам разрешено довольно большое подмножество действительных python выражений, поскольку поля, включая буквально-вложенные словари и все еще более сложные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...