Python将不需要的选项卡添加到字符串

时间:2015-08-05 11:51:32

标签: python python-2.7

我使用的脚本基本上从HTML文件中捕获HTML元素并将它们发送到MySQL数据库。我用

title = line.replace("<!--h1-->",'').replace("<h1>",'').replace("</h1>",'')

用于捕获H1。现在,如果我跑

print title

一切都很好。但是,如果我跑

print 'post_title = %(title)s'%locals()

然后Python似乎一直在title的开头添加2个标签。

是否有人知道造成这种情况的原因以及如何防止这种情况?

2 个答案:

答案 0 :(得分:0)

删除空格的方法是使用<span ng-repeat="task in tasks"> <input type="checkbox" ng-model="task.status"> {{task.item}} </span> string method

strip()

或者,如果您知道在字符串的开头总是有两个不需要的标签,只需缩短标题即可。以下代码用除字符串前两个字符之外的所有字符替换title。

title = line.replace("<!--h1-->",'').replace("<h1>",'').replace("</h1>",'')
print 'post_title = %s' % title.strip()

修改

另一种方法是使用regular expressions。与字符串的title = title[2:] 方法类似,可以使用正则表达式替换方法将双选项卡(replace)替换为空字符串(\t\t)。

''

import re title = line.replace("<!--h1-->",'').replace("<h1>",'').replace("</h1>",'') # Replace two consecutive tabs. title = re.sub('\t\t', '', title) 模块如此强大的原因在于您甚至可以使用re(或^)将搜索限制在相关字符串的开头(或结尾)字符。

$

答案 1 :(得分:0)

strip()字符串上调用title

title = line.replace("<!--h1-->",'').replace("<h1>",'').replace("</h1>",'').strip()
print 'post_title = %(title)s' % locals()

没有必要以这种方式使用locals();你已经拥有了所需的变量,所以:

print 'post_title = %s' % title

print 'post_title = {}'.format(title)

会更好。