2016-10-07 17 views
-1

パターンnr:または/ nr:の間にこれらの文字列をすべて抽出する必要があります。誰でも助けてくれますか?Readでアシスト

文字列は、私が期待してい

nr:Organization/nr:Customer/nr:Agreement/nr:date/nr:coverage/nr:Premium/nr:Option/nr:OptionID 

出力が

Organization, Customer, Agreement,...OptionID 
+0

あなたは何を試してみましたか?あなたのコードを見せて、あなたが抱えている困難を説明できますか? – idjaw

答えて

0

reモジュールを使用split文字列とその長さが0で試合フィルタリングである:

import re 

test_string = "nr:Organization/nr:Customer/nr:Agreement/nr:date/nr:coverage/nr:Premium/nr:Option/nr:OptionID" 

columns = [x for x in re.split("/{0,1}nr:",test_string) if len(x) > 0] 

print(columns) 

['Organization', 'Customer', 'Agreement', 'date', 'coverage', 'Premium', 'Option', 'OptionID'] 

を私はこれが役立つことを願っていますここで

0

は、正規表現とスプリットを持つ方法です:

import re 

string = 'nr:Organization/nr:Customer/nr:Agreement/nr:date/nr:coverage/nr:Premium/nr:Option/nr:OptionID' 

x = filter(None, re.split('/*nr:', string)) 
print x 

正規表現は「/」が先行nr:(またはしない)を探します。 re.split関数は空の要素を残して、filterを適用すると、望ましい出力が得られます。

また、ここでのアクションでそれを参照してください。https://eval.in/656744

1

を使用すると、「再」モジュールを使用せずにそれをしたい場合は、これがうまくいくように、それが見えます:

test_string = 'nr:Organization/nr:Customer/nr:Agreement/nr:date/nr:coverage/nr:Premium/nr:Option/nr:OptionID' 
columns = [f[3:] for f in test_string.split('/')] 
print(columns)