【问题标题】:Python regex to remove substrings inside curly bracesPython正则表达式删除花括号内的子字符串
【发布时间】:2015-11-25 16:25:23
【问题描述】:

我有一行有很多单词和字符。我只想删除双花括号中包含的部分

{{ }}

我尝试了?={{.*}},但我没有得到任何东西。

【问题讨论】:

  • 可以嵌套花括号吗?
  • 那是因为 Python 不处理花括号。请参阅from __future__ import braces(我在开玩笑,对于 Python 新手)
  • 所以它是嵌套的,但是两个连续的大括号之间是连续的,它们之间没有任何东西

标签: python regex


【解决方案1】:

试试这个:

import re
s = re.sub('{{.*?}}', '', s)

注意{} 通常是正则表达式中的特殊字符,通常应该用反斜杠转义以获得它们的字面意思。但是在这种情况下,它们被解释为文字。

在线查看:ideone

【讨论】:

  • 请注意,re.sub(...) 中的第二个参数可以传递给函数。每次使用匹配对象进行替换时,都会调用此函数。此函数返回的字符串将替换该替换。这在处理字符串中的变量或类似的东西时可能很有用。
【解决方案2】:

如果您尝试从花括号内提取文本,请尝试以下操作:

import re 
s = 'apple {{pear}} orange {banana}'
matches = re.search(r'{{(.*)}}', s)
print matches.group(1)

group(1) 将包含字符串 'pear'

【讨论】:

  • 我想从现有行中删除它们
  • 因此这种匹配对我来说没有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
相关资源
最近更新 更多