如何使用python

时间:2017-05-21 05:21:40

标签: python regex string

我有以下字符串

s = 'qwe starting alskdjklas jkld l;ksdl;kas l;;lask \n klasdkl;lasd \n ending askldjla'

我想删除开始...结束之间的任何内容。

我想要的输出是

qwe askldjla

有没有办法使用python re?

4 个答案:

答案 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;
&#13;
&#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)

&#13;
&#13;
<script src="//repl.it/embed/IJVb/2.js"></script>
&#13;
&#13;
&#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