2016-05-04 5 views
1

を有する第二の発生を取得し、私はので、ここでsqlfiddle仕事をするために達成することができないことは、私の簡単なコードです。私はREGEXP_SUBSTRは、n番目の発生を取得するために使用されるパラメータを持って知っているが、私はREGEXP_SUBSTR

select REGEXP_SUBSTR(' EG SUZ SG SIN blabla ', '^(\s?[A-Z]{2} [A-Z]{3}\s?){2}'),1,2) from dual; 

を書くとき、それはので、私の推測では、発生が正しく分割されていないということです何と1,1戻りEG SUZ SG SINを返しませんが、私はなぜ知りません、説明して頂けますか?

+0

に動作します。正規表現から{2}を削除してから、REGEXP_SUBSTR(.... 1,2)を試してみてください。私はそれがうまくいくと信じています –

+0

@tamasrevは動作しません。私も最初の\ sを出してみましたか?あなたの最初の正規表現で{2} – So4ne

+0

がある場合とない場合のマッチンググループから 'select REGEXP_SUBSTR( 'EG SUZ SG SIN blabla'、 '^(\ s?[AZ] {2} [AZ] {3} \ )?{2} ')から二重; ' – rock321987

答えて

1

これは私がコメントを追加しているので、私は今それを試すことができません

select REGEXP_SUBSTR(' EG SUZ SG SIN blabla ', '([A-Z]{2} [A-Z]{3}(\s|$))', 1, 2) from dual; 
+0

ありがとうございました...なぜ '^'ブロックを説明できますか? – So4ne

+0

'^'は文字列の始まりを示すアンカーです。指定されたパターンですべての文字列を取得できます。 – rock321987

+0

これを明確にするために、2番目のオカレンスが表示されます空白(非印字)文字(スペース、タブ、およびフォームフィードなど)または行の終わりのあとに、大文字と大文字の3つのスペースが続く2つの大文字のセットを指定します。パターンが見つからない場合は、NULLが戻されます。非常に具体的なので、これが文字列とテキストの部分を正確に記述していることを確認してください。 –

関連する問題