我有以下字符串
s = 'qwe starting alskdjklas jkld l;ksdl;kas l;;lask \n klasdkl;lasd \n ending askldjla'
我想删除开始...结束之间的任何内容。
我想要的输出是
qwe askldjla
有没有办法使用python re?
答案 0 :(得分:1)
使用Regex
import re
s = 'qwe starting alskdjklas jkld l;ksdl;kas l;;lask \n klasdkl;lasd \n ending askldjla'
s = re.sub(r'starting.*ending', '', s, flags=re.DOTALL)
print(s)
<script src="//repl.it/embed/IJVb/1.js"></script>
&#13;
答案 1 :(得分:1)
没有正则表达式
s = 'qwe starting alskdjklas jkld l;ksdl;kas l;;lask \n klasdkl;lasd \n ending askldjla'
s = s[:s.index('starting')] + s[s.rindex('ending') + 6:]
print(s)
<script src="//repl.it/embed/IJVb/2.js"></script>
&#13;
答案 2 :(得分:0)
您可以使用s.index("starting")
来提供开始索引。在这种情况下,它会返回4
作为"starting"
的索引。
对"ending"
执行相同操作,但将其偏移"ending"
的长度。
答案 3 :(得分:0)
您正在尝试做的事情,可以在没有正则表达式的情况下完成。
s = 'qwe starting alskdjklas jkld l;ksdl;kas l;;lask \n klasdkl;lasd \n ending askldjla'
s = s.split()
print(s)
['qwe', 'starting', 'alskdjklas', 'jkld', 'l;ksdl;kas', 'l;;lask', '\n', 'klasdkl;lasd', '\n', 'ending', 'askldjla']
s_new = s[0] + ' ' + s[-1]
print(s_new)
qwe askldjla