当前位置: 首页 > 面试题库 >

如何使用正则表达式在python字符串中找到str.format的所有占位符?

颛孙飞鸾
2023-03-14
问题内容

我正在创建一个类,该类使用用户指定的格式重命名文件。这种格式将是一个简单的字符串,str.format将调用其方法来填充空格。

事实证明,我的过程将需要提取花括号中包含的变量名称。例如,一个字符串可能包含{user},应该产生yield
user。当然,单个字符串中会有几组花括号,我需要按它们出现的顺序获取它们的内容,并将它们输出到列表中。

因此,"{foo}{bar}"应屈服['foo', 'bar']

我怀疑最简单的方法是使用re.split,但是我对正则表达式一无所知。有人可以帮我吗?

提前致谢!


问题答案:

使用re.findall()

In [5]: import re

In [8]: strs = "{foo} spam eggs {bar}"

In [9]: re.findall(r"{(\w+)}", strs)
Out[9]: ['foo', 'bar']


 类似资料:
  • 问题内容: 我目前正在使用正则表达式搜索RSS提要,以查找是否提到了某些单词和短语,然后想在匹配的任一侧提取文本。例如: 我想知道找到“ is”匹配项的位置,以便提取并输出如下内容: 我知道拆分很容易,但是我需要知道字符串中匹配的第一个字符的索引是什么,我不知道该怎么找到 问题答案: 您可以使用,它将返回字符串中“ is”的位置 或从重新使用.start() 实际上,它的匹配“是”来自“ Th 是

  • 问题内容: 我有一个文本字段,用户可以在其中编写任何内容。 现在,我想解析它并找到所有YouTube视频URL及其ID。 任何想法如何工作? 问题答案: YouTube视频网址可能会以多种格式出现: 最新的简短格式: iframe: iframe(安全): 对象参数: 对象嵌入: 看: 用户: ytscreeningroom: 什么都可以!: 任何/子域/太: 更多参数: 查询可能有点: noco

  • 我有一个最多1000个长度的字符串,在字符串中每两位数字代表一个数字,我如何找到字符串是否包含比我输入的数字大的数字? 例如,000102252500表示数字00,01,02,25,25,00,如果我在20处有一个输入数字(这个数字可以更改),我如何使用正则表达式找到字符串是否包含大于20的数字? 谢谢!

  • 问题内容: 我试图返回一个数组或切片,针对字符串针对特定正则表达式的所有匹配项。字符串是: 我想返回一个花括号之间所有字符串都匹配的数组。我尝试使用regexp软件包来完成此操作,但无法弄清楚如何返回我要查找的内容。这是我当前的代码: 但是,无论我尝试什么,每次返回的结果都是一片空白。 问题答案: 首先,您不需要正则表达式定界符。其次,使用原始字符串文字定义一个正则表达式模式是个好主意,您只需要使

  • 问题内容: 我想使用来自用户的输入作为正则表达式模式来搜索某些文本。它可以工作,但是我该如何处理用户在正则表达式中放置有意义的字符的情况?例如,用户要搜索:正则表达式引擎会将(s)分组。我希望它像对待字符串一样对待它。我可以replace在用户输入上运行并将和 替换,但是问题是我将需要对每个可能的正则表达式符号进行替换。你知道更好的方法吗? 问题答案: 使用此功能: 4.2.3 re模块内容 转义

  • 问题内容: 我想用以下代码查找字符串中的所有数字: 我还尝试将定界符添加到正则表达式,使用正数作为的第二个参数,使用仅数字字符串,例如“ 123”作为第一个参数… 但是输出总是 我似乎想念一下正则表达式在Go中的工作原理,但是无法绕开它。这不是有效的表达方式吗? 问题答案: 问题出在你的第二个整数参数上。引用以下软件包的文档: 这些例程使用一个额外的整数参数n;如果n> = 0,则该函数最多返回n