在python中使用re.split()获取两个{}

时间:2014-10-05 18:49:02

标签: python

我正在尝试使用re.split(),以便我可以在python中编写一个madlibs程序。

我一直试图让它分裂每组括号,例如{名词}。到目前为止,我只能成功拆分第一个支架,但不是第二支架。我正在尝试阅读有关它的文档,但我仍然感到很困惑。我已经看过在多个项目上使用re.split()的其他示例,但它所做的只是让我感到困惑。有人可以请我深入解释如何解决这个问题吗?非常感谢你。

前代码:

re.split('{')< --- Works re.split('{','}')< - 不起作用

1 个答案:

答案 0 :(得分:1)

如评论中所述,您需要使用逻辑OR运算符|来分隔符号。这样正则表达式引擎会根据{}符号拆分输入字符串。并且不要忘记将正则表达式定义为原始字符串。

re.split(r'{|}', str)

将它们放在一个字符类中。

re.split(r'[{}]', str)

示例:

>>> re.split(r'{|}', "{noun}")
['', 'noun', '']
>>> re.split(r'[{}]', "{noun}")
['', 'noun', '']