在Python中,如何删除字符串中所有字符直到遇到换行符?
在Python中,如何找到字符串中换行符之前的所有字符并把它们去掉,最好的方法是什么?
str = 'fakeline\nfirstline\nsecondline\nthirdline'
into
str = 'firstline\nsecondline\nthirdline'
3 个回答
1
使用 str.split("\n") 可以把字符串按照换行符分割成一个列表,里面包含了所有的段落。之后你可以用 + 把你想要的部分连接起来。对于你的情况,你可以使用切片来选择需要的部分。
newstr = "".join(str.split("\n")[1::])
1
你也可以使用 re.sub()
这个方法来进行替换,它是用来处理 正则表达式 的。
>>> import re
>>> s = 'fakeline\nfirstline\nsecondline\nthirdline'
>>> re.sub(r'^.*\n', '', s)
'firstline\nsecondline\nthirdline'
7
找到换行符的位置,然后用这个位置来切割字符串:
>>> s = 'fakeline\nfirstline\nsecondline\nthirdline'
>>> s[s.index('\n')+1:] # add 1 to get the character after the newline
'firstline\nsecondline\nthirdline'
另外,不要把你的字符串命名为 str
,因为这样会覆盖掉内置的 str
函数。
编辑:
还有一种方法(来自Valentin Lorentz的评论):
s.split('\n', 1)[1]
我觉得这个方法比我的答案更好。它只对字符串进行一次切割,然后获取切割后后半部分的内容。