如何将单词之间的单个空格替换为' _'在python?
例如:
输入:
09 Web Problem Any problem has to do with the dept. web sites
12 SW Help Questions about installed SW (hotline support)
输出:
09 Web_Problem Any_problem_has_to_do_with_the_dept._web_sites
12 SW_Help Questions_about_installed_SW_(hotline_support)
谢谢!
答案 0 :(得分:2)
您可以使用正则表达式执行此操作:
>>> import re
>>> x = '09 Web Problem Any problem has to do with the dept. web sites'
>>> print re.sub(r'([^\s])\s([^\s])', r'\1_\2',x)
09 Web_Problem Any_problem_has_to_do_with_the_dept._web_sites
搜索模式是(1)任何非空白字符,后跟(2)单空白字符,后跟(3)另一个非空白字符。
捕获数字1和3,以便它们可用于替换模式。数字2被忽略,我们改为使用下划线。
这样就可以单独留下多个白色空间区域,只需将单个出现的空白字符更改为下划线,这就是我认为你要求的。
答案 1 :(得分:1)
如果您试图保持第一个数字和文本之间的空格,那么:
更新:
import re
match = re.match("^([0-9]+)(\ +)(.*?)(\ +\ +)(.*)",yourstring)
output = match.group(1)+match.group(2)+match.group(3).replace(' ','_')+match.group(4)+ match.group(5).replace(' ', '_')
答案 2 :(得分:0)
要读入该文件,您需要使用open()函数以及一个循环(一个for循环很有意义)来读取每一行。
要将线条分成几部分,您可以使用漂亮的字符串切片语法。有关切片的一些示例,请参阅http://docs.python.org/tutorial/introduction.html#strings。
将空格实际替换为_,replace方法就是你想要的。
'abc def'.replace(' ', '_')
有关更有用的字符串方法,请参阅http://docs.python.org/library/stdtypes.html#string-methods。
由于您刚刚开始使用Python,我强烈推荐以下教程:http://learnpythonthehardway.org/完成整个工作,您应该有一个坚实的基础来构建。