2016-08-05 5 views
-1

文字列をカッコで複数の部分に分割したいが、引用されたもの(括弧を含む可能性がある)は単一の記号として扱われるべきである。例えば、文字列引用符内のかっこの正規表現

(ID1、 "シンプルこんにちは")、(ID2は、 "こんにちは\ nは奇妙な(すべての文字)のA @")

は2つの部分

1に分割する必要があります) ID1、 "こんにちは、単純な"

2)ID2、 "こんにちは\ nは奇妙な(すべての文字)のA @"

私はPythonでこれを行うことができますどのように?

+0

はPythonのスプリット[モジュール](https://docs.python.org/2/library/stdtypesにプログラマ – stark

+0

ルックを雇います。 html#str.rsplit) – TheGirrafish

答えて

0

あなたが本当にregexを使用する必要がある場合、これはあなたのポストから現在の文字列で動作します:

import re 
pat = re.compile(r'\(([a-zA-Z0-9"\(\)\s]+)\)') 
matches = re.findall(pat, '(Hello "(world)"), (2016)') 
# ['Hello "(world)"', '2016'] 

しかし、split機能は、テキストのフォーマットのための実行可能な選択肢かもしれません。すべてのデータが括弧の単一のペアで囲まれている場合は、行うことができます:

results = [x[1:-1] for x in '(Hello "(world)"), (2016)'.split(', ')] 
# ['Hello "(world)"', '2016'] 
+0

ありがとうございます。私は問題を過度に単純化しているようだ。編集した質問をご覧になれますか?基本的に引用符の中にあるものは、エスケープやユニコードを含む任意のシンボルにすることができます。また、各分割部分の内部にコンマを入れることもできます。 – Roz

関連する問題