2011-06-30 6 views
1

文字列を3つの変数に分割したいと思います。私がちょうど.split()を走らせるとき、私は['AAA00000011']を得る。私はこれを次のように分割します:文字列を3つの変数に分割する助けが必要です

var1 = AAA 
var2 = 0000001 
var3 = 1 

ユーザは、これらの値をWindowsマシンのコマンドラインに入力しています。

マイコード:

barcode = raw_input('Please enter your barcode') 

print "this is the barcode all split up", barcode.split() 
+0

文字列を分割するルールは何ですか? –

+0

var3の内容をどのようなルールで区切っていますか?それは最後の桁ですか? –

+0

あなたは正規表現でそれを行うことができますが、あなたのRE文字列の書式設定は現時点では私をエスケープしていますので、私はあなたの答えを記入できません。 –

答えて

6

あなたがこのお探しですか?

var1 = barcode[:3] # first three characters 
var2 = barcode[3:-1] # all characters from third to next-to-last 
var3 = barcode[-1] # last character 
+0

私はvar1 = barcode.a [:3]と言っていますか? –

+0

@Marc:更新された私の答えを見てください。 –

+0

彼の例では、 'a'は元の文字列ではありません。バーコード[:3] – danielrsmith

0

ここで部分文字列を使用したいと思います。

var1 = barcode[:3] 

など

+0

私は少し間違いがあると思います:上記のコードでは、 'var1'は実際に' ['AAA00000011'] 'です。 – jena

+0

@ jena originalは誰もが "barcode"を参照している価値です。 var1 = barcode [:3]は、最初の3文字の部分文字列です。 – danielrsmith

+1

いいえ、そうではありません。 :)サブリスト0:3です。 – jena

0

も(謝罪、私の再使用が錆びている)再でそれを行うことができます:

In [3]: re.findall('(\w{3})(\d{7})(\d)', 'AAA00000011') 
Out[3]: [('AAA', '0000001', '1')] 
+0

us \ w、2番目のフィールドでは\ dはアルファベットとすべての数字をそれぞれ与えます。 –

+0

を作成し、それを.findallにして括弧を<>に変更すると、先頭と末尾に ''を付けずに3つのリストをすべて取得する必要がありますか? < - この修正については不明です。 –

+0

良い点@DKGasser!テスト後にアップデートが含まれています。 – AlG