2016-09-19 47 views
2

私はこのようになります対象文字列がありますだけでカッコ外", "でターゲットを分割してRegex:括弧の外側にのみ一致する(その結果、括弧内にテキストが分割されないようにする)?

["foo (foo, foofoo)", "bar (foobar)", "foo", "bar (barbar, foo)", "bar", "foo"] 

"foo (foo, foofoo), bar (foobar), foo, bar (barbar, foo), bar, foo" 

と私が欲しいの。かっこの外側のカンマと一致する正規表現は何ですか?私の場合、入れ子にされたかっこは現れず、私はそれらを考慮する必要もありません。

私は個人的にPythonを使用していますが、どの言語の例でも問題ありません。

+0

が存在しないと仮定すると、これを扱うことができない正規表現は、存在しません。私はあなたが一般的な問題を処理するためにパーサーを使用する必要があるかもしれないと思う。 –

+0

ありがとう、私は編集しました。 – akai

答えて

4
,(?![^(]*\)) 

あなたはsplit.See demo.Thisにこれを使用することができますuはネストされた()が存在しないと述べたとしても当てはまります。

https://regex101.com/r/wV5bD0/1

+0

ありがとう、天才。私はハハを理解するのにずっと時間をかけました。 – akai

+0

@akai ur welcome :) – vks

+1

パーフェクト、私はSwiftのためにうまくいかなかった他のスレッドで他の多くの答えを見つけました。これはSwift Regexのために働く最初の答えです:) –

1

あなたは試合を抽出するためにこれを使用することができます。括弧は任意の深さまでネストすることができるので、一般的に入れ子になった()

(\w+(?: \([^\)]*\))?) 

https://www.regex101.com/r/gR6jF1/1

関連する問題