在字符串中查找字符串模式

时间:2014-05-21 00:33:24

标签: python string

我有这个字符串,例如:

line = "Hello my name is {{ name }} and I am {{ age }} years old."

如何从{{ string }}中提取字符串模式line

结果应为['name', 'age']

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用re.findall

>>> from re import findall
>>> line = "Hello my name is {{ name }} and I am {{ age }} years old."
>>> findall("{{\s(.*?)\s}}", line)
['name', 'age']
>>>

以下是正则表达式模式的细分:

{{     # {{
\s     # A space
(.*?)  # A capture group of zero or more characters matched non-greedily
\s     # A space
}}     # }}

如果您想了解更多信息,请解释上面使用的所有正则表达式语法here


请注意,如果空白的长度可能不同,则可能需要将\s替换为\s*,这将匹配零个或多个空格:

>>> from re import findall
>>> line = "Hello my name is {{name          }} and I am {{          age   }} years old."
>>> findall("{{\s*(.*?)\s*}}", line)
['name', 'age']
>>>