2017-05-09 23 views
0

私の列には、文字で始まる単語が含まれています'='これらの単語はどのように抽出できますか?私はREGEXP_SUBSTRを見つけましたが、これを行う特定の正規表現を見つけることができませんでしたか?私はどんな助けにも感謝します。ありがとう。特殊文字を含む部分文字列を抽出する -

EDIT:

select regexp_substr(col, '=\S+') 
from your_table; 

=\S+::私は"=lovely"

+0

「=」で始まる単語または「=」で始まる単語を抽出する必要がありますか? – GurV

+0

@JSapkota質問を更新しました。 – jason

答えて

2

あなたはこのためにREGEXP_SUBSTRを使用することができます取得したい

"What a =lovely day!" 

:私は、このような文字列を持っている

  • = - リテラル=
  • \S+と一致 - 1つ以上の非空白文字にマッチ
1

、ニーズに応じて、

REGEXP_SUBSTR('What a =lovely day!', '=\w+') 

または

REGEXP_SUBSTR('What a =lovely day!', '=\S+') 

を試してみてください。

1

また、特殊文字のリストに基づいて一致させたい場合は、以下のようにします。

この例では、=#を一致させることができます。あなたが好きな場合は、さらに特殊な文字を追加することができます。

また、残りの単語が見つからない場合には=を返すだけの場合は、\S*を使用してください。それ以外の場合\S+

この形式の文字列では、nullとなります。

select regexp_substr(col1,'[=#]\S*') from 
(select 'what a =lovely day' as col1 from dual union all 
select 'some other #word as' from dual union all 
select 'a normal string' from dual) 
関連する問題