0
我試圖使用Regexp_substr從屬性字段中提取單元號。 以下是查詢。Oracle查詢Regexp_substr
regexp_substr(PROPERTY,'(#)[^\S]+ ')
雖然有些結果是正確的,但其他人回來象下面這樣:
#05-08 DOVER PARKVIEW
我可以知道我需要做的,忽略所有的字母或措辭? 謝謝。
我試圖使用Regexp_substr從屬性字段中提取單元號。 以下是查詢。Oracle查詢Regexp_substr
regexp_substr(PROPERTY,'(#)[^\S]+ ')
雖然有些結果是正確的,但其他人回來象下面這樣:
#05-08 DOVER PARKVIEW
我可以知道我需要做的,忽略所有的字母或措辭? 謝謝。
[^\S]
模式匹配任何字符,但匹配\
和大寫字母S
。
您需要捕獲1+位數字與-
和#
後再次1+數字和提取匹配的那部分只能用
regexp_substr(PROPERTY, '#(\d+-\d+)', 1, 1, NULL, 1)
最後1
參數告訴正則表達式引擎的內容提取的ID爲1的捕獲組(它是該模式中唯一的捕獲組)。
#
- 字面#
(\d+-\d+)
- 捕獲組1個匹配:
\d+
- 1或多個數字-
- 連字符\d+
- 1或多個數字。select regexp_substr('#05-08 DOVER PARKVIEW', '#(\d+-\d+)', 1, 1, NULL, 1) as RESULT from dual
那麼,什麼是輸入字符串,什麼是你需要的結果呢?順便說一句,Oracle 11g/12g或更老? –
你打算與'[^ \ S]'匹配嗎? –
我試圖僅匹配單元號碼,即#05-08。但是,這只是一種格式,其他單元號碼看起來像#19-1215或#06-143 –