用Python替换文本

时间:2010-01-08 04:31:28

标签: python regex

我一直在查看文档和其他问题,但我一直在使用正则表达式遇到麻烦。

我需要从字符串中删除[tag]中的内容。

string = "Article Name [Tag Name]"
#and I want to go to
string = "Article Name"

如果有人能提供帮助,我真的很感激。

6 个答案:

答案 0 :(得分:2)

re.sub("\s*\[.*?\]", "", string)

答案 1 :(得分:1)

如果您确定[标签名称]始终位于文章名称之后,则可以在没有正则表达式的情况下执行此操作。

>>> string="Article Name [Tag Name]"
>>> string[:string.find(" [")]
'Article Name'

或.partition

>>> string.partition(" [")[0]
'Article Name'

答案 2 :(得分:1)

这不使用正则表达式,所以如果这是一个要求,这不是答案,但你可以这样做:

 string = string.split('[')[0].strip()

答案 3 :(得分:0)

re.sub(r"(.*) \[.*\]", r"\1", string)

这只会删除标签,如果它位于字符串的末尾。

答案 4 :(得分:0)

没有正则表达式会更好:

txt = "Article Name [Tag Name]"
if txt.rfind('[') and txt.rfind(']') > txt.rfind('['): txt = txt[:txt.rfind('[')]
if txt[-1] == ' ': txt = txt[:-1]

答案 5 :(得分:0)

这里有一个[]标签的多个实例

>>> string = "Article Name [Tag Name] blah blah [tag name2] blah blah [tag name3]"
>>> for i in string.split("]"):
...   print i[ : i.find("[") ]
...
Article Name
 blah blah
 blah blah