Pythonの操作文字列

私は「生の」変数を持っています:

*rawVariable =* "Hello" "World"  "String 1"  "String 2"  "String 3"  "Sting 4"   
"Hello" "World"  "String 5"  "String 6"  "String 7"  "String 8"   
"Hello" "World" "String 9"  "String 10"  "String 11"  "String 12"

区切り文字として前後に二重引用符を付けた配列に単語を格納することは可能でしょうか?

デリミタとして "を使用できません。

例:

formattedArray = ["Hello","World","String 1","String 2","String
3","Sting 4","Hello","World"  "String 5","String 6","String 7","String
8","Hello","World","String 9","String 10","String 11","String 12"]

注:

  • 単語の間には異なる間隔( \ n を含む)があります。
  • formattedArrayの後に2D配列に格納します。
1
あなたはどんな問題を抱えていますか?あなたのサンプルコードは正常に動作します。
追加された 著者 David Heffernan,
rawVariable の形式についてもっと明示してください。それはPythonの行でそのように定義された文字列ですか(その場合は連結された個々の部分文字列であり、大文字で分割する必要があります)。それとも引用符を含む実際の文字列ですか?
追加された 著者 Andrew Jaffe,
@DavidHeffernanどのようなコードですか?私は彼が生の変数から配列のためにしたいと思う。
追加された 著者 unni,

2 答え

私はあなたの質問を理解していれば私は100%確信していませんが、私はあなたに役立つかもしれない次のコードを推測しています:

import re

def splitRawString(s):
    return map(lambda x: re.sub('^"?([^"]*)"?$', r'\1', x),
        re.split('"\s*"', s))

a='"Hello" "World" "String 1" "String 2" "String 3" "Sting 4" "Hello" "World" "String 5" "String 6" "String 7" "String 8" "Hello" "World" "String 9" "String 10" "String 11" "String 12"'
print splitRawString(a)

次の出力が得られます。

['Hello', 'World', 'String 1', 'String 2', 'String 3', 'Sting 4', 'Hello', 'World', 'String 5', 'String 6', 'String 7', 'String 8', 'Hello', 'World', 'String 9', 'String 10', 'String 11', 'String 12']

それはあなたが必要とするものですか?

1
追加された
うん!ありがとう!どちらの答えも同じ仕事をしましたが(ある程度まで)、私はこれがより強固であるため、これを好きです。
追加された 著者 Ezylryb,

文字列を " delimeterで分割し、他のすべての部分文字列を取得する必要があるだけです(興味深いものは空白で括られているので)。

def split_quoted_strings(s):
    split_via_quote = s.split('"')
    return split_via_quote[1::2]

テストで正しい結果が得られます。

>>> a='"Hello" "World" "String 1" "String 2" "String 3" "Sting 4" "Hello" "World" "String 5" "String 6" "String 7" "String 8" "Hello" "World" "String 9" "String 10" "String 11" "String 12"'
>>> split_quoted_string(a)
['Hello',
'World',
# omitted
'String 12']
1
追加された