2017-05-09 193 views
0

在我的列中,有一個字符串包含以字符'='開頭的單詞如何提取這些單詞?我發現REGEXP_SUBSTR但我找不到特別的正則表達式來做到這一點?我感謝任何幫助。謝謝。具有特殊字符的提取子字符串 - Oracle

編輯:

我有這樣的字符串:

"What a =lovely day!" 

我想"=lovely"

+0

您是否需要提取以'='開始的單詞或以'='開頭的行? – GurV

+0

@JSapkota我更新了問題。 – jason

回答

2

您可以使用REGEXP_SUBSTR此:

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

=\S+

  • = - 匹配字面=
  • \S+ - 匹配一個或多個非空格字符
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) 
相關問題