2016-05-08 1 views
-2

私はこの問題の解決策を見つけようと、頭を吹かれました。 ネストされたかっこの間にテキストを抽出する必要があります。角かっこは入れ子にすることができ、複数の内側にすることができます。そして、クレイジーな部分は、私はJavascriptでREGEXを使ってこれをやりたがっていることです!無邪気な!知っている!REGEX - Javascriptを使用して、繰り返し括弧内のテキストを抽出する方法はありますか?

例:

(This (is 
    (a) 
    (brain) killer) Aaah) (I (am) pissed) (REGEX kills) 

出力:単語を抽出するために

(((?:<\w+>)*([\w\s]*)(?:<\/\w+>)*)\*) 

ThisisabrainkillerAaahIampissedREGEXkills

私はこれを試してみました。しかし、運がない!

注:私は後でそれらに加わることができるようにそれらをグループに抽出しておきます。

+0

あなたの出力を取得するには、あなただけの任意の '('や ')'、右の削除だろうか? –

+0

は大括弧で '{'と '}'やかっこ - '('と ')'を意味していますか? – Veverke

+0

@SebastianProske '('、 ')'と '[white space(s)]'です。 – Shafizadeh

答えて

1

あなたは、この正規表現を使用して分割することができます:

var str = "(This (is (a) (brain) killer) Aaah) (I (am) pissed) (REGEX kills)"; 
 
var result = str.split(/\s*[()]\s*/); 
 
// remove empty strings 
 
result = result.filter(function(s) { return s.length; }); 
 
document.write(JSON.stringify(result));

+0

何を得ようとしていますか? https://regex101.com/r/yJ5lT0/1 – Shafizadeh

0

あなたはJSとあまり手間を必要としません。ちょうどString.prototype.match(/[^\(\)\s]+?(?=[\(\)\s])/g)とこれを使用して、あなたはすべてうまくいくはずです。

[^\(\)\s]+?(?=[\(\)\s]) 

Regular expression visualization

Debuggex Demo

Regex101 Demo

関連する問題