2017-10-19 15 views
1
import re 
big_string = "Some random //words to [email protected]@ out //[email protected]@ code with" 
array = [] 
x = [m.start() for m in re.finditer('//', big_string)] 
y = [n.start() for n in re.finditer('@@', big_string)] 
for i in range(len(x)): 
    array.append(big_string[x[i]+2:y[i]]) 
print array 
#output = ['words to test', 'the'] 

上記のコードは、2つの文字列( '//'と '@@')の間の単語を大きな文字列で見つけることができます。 xとyは常に同じ長さであると仮定できます。このコードはあまり効率的ではないようですが、同じ結果を達成するためにはもっと単純な方法やもっとphyonicな方法が必要でしょうか?アドバイスをいただければ幸いです。文字列内の2つの所定の単語の間のすべての文字を見つける

答えて

1

単純な答えcan be seen here:私たちは、/は、念のために、そして//@@間(())すべてをキャプチャ脱出、そして我々はすべての短いを取得するように非貪欲?を使用

\/\/(.*?)@@ 

単一の長いスパンだけではなく、

一行:

re.findall('//(.*?)@@', big_string) 

戻り値:

['words to test', 'the'] 
+0

000感謝! – Chrisp

関連する問題