Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换Python中的文本_Python_Regex - Fatal编程技术网

替换Python中的文本

替换Python中的文本,python,regex,Python,Regex,我一直在看re文档和其他问题,但我一直遇到regex的问题 我需要从字符串中去掉[tag]中的内容 string = "Article Name [Tag Name]" #and I want to go to string = "Article Name" 如果有人能帮助我,我将不胜感激 re.sub("\s*\[.*?\]", "", string) 这将只删除位于字符串末尾的标记。如果您确定[tag Name]始终位于文章名之后,则可以在不使用正则表达式的情况下执行此操作 string

我一直在看re文档和其他问题,但我一直遇到regex的问题

我需要从字符串中去掉[tag]中的内容

string = "Article Name [Tag Name]"
#and I want to go to
string = "Article Name"
如果有人能帮助我,我将不胜感激

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

这将只删除位于字符串末尾的标记。

如果您确定[tag Name]始终位于文章名之后,则可以在不使用正则表达式的情况下执行此操作

string = "Article Name [Tag Name]"
#and I want to go to
string = "Article Name"
>>> string="Article Name [Tag Name]"
>>> string[:string.find(" [")]
'Article Name'
或者使用分区

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

这不使用正则表达式,因此如果这是一项要求,这不是答案,但您可以这样做:

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

没有正则表达式更好:

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

这里有一个用于[]标记的多个实例

>>> 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