2017-03-22 8 views
-1

私は以下のような文字列を持っています。文字が始まるまでにすべて数字を抽出したいだけです。括弧の前にある数字を抽出する正規表現

12XYXXX12345(XXYYZZ)

XXYY文字のためだけのプレースホルダは、私が表現の下に使用して開き括弧(前にデータを抽出することができます。..

です。しかし、私は数字だけを抽出する方法を知らない。

^[^\(]* 
+0

まあ、今でも[ '\ dの(?= \ワット* \()'](https://regex101.com/r/nuYATm/1) –

+1

XYXXXのプレースホルダに数字が多いのですか?そうでない場合は、12、12345、または1212345を抽出しますか?また、常に存在していますか? 2つの数字を1つの文字のみの単語で割ったもの、または「1x2xy3whatever(... '? –

+0

@ PeterA.Schneider私はちょうど12345を望んでいます..YXXXXはすべての文字です –

答えて

1
hive> select regexp_extract ('12XYXXX12345(XXYYZZ)','\\d+(?=\\()',0); 
OK 
12345 

OR

hive> select regexp_extract ('12XYXXX12345(XXYYZZ)','(\\d+)\\(',1); 
OK 
12345 
+0

答えを見ましたか? ? –

+0

はい。私は答えとしてそれを受け入れるでしょう。おかげです。 –

0

var x = "12XYXXX12345(XXYYZZ)"; 
 
console.log(x.match(/^[^\(]*/)[0].match(/\d/g).join(""));

コードは、第12XYXXX12345を取得し、数字と一致する正規表現を実行し、すべての一致を組み合わせ。

+0

私のハイブクエリで正規表現を使用していますので、一致条件は動作しません..正規表現クエリをネストできる方法はありますか? –