我正在使用Oracle regural表達式,我想匹配一些字符串,然後與另一個字符串然後另一個字符串不同。正則表達式匹配測試<not ABC>測試
例如,我想匹配'testZZZtest'和'testAAAtest',但沒有'testABCtest'也沒有'測試bla bla ABC bla bla test'。
我想模式 '測試[^ ABC] *測試' 中:
select regexp_instr('bla bla bla testAZZtest bla bla bla', 'test[^ABC]*test') from dual
但它簡化版,工作(它回答0,這意味着它不匹配)。看來,在「AZZ」的「A」的問題,因爲如果我嘗試:
select regexp_instr('bla bla bla testZZZtest bla bla bla', 'test[^ABC]*test') from dual
我是testZZZtest在原來的字符串位置的答案13。
當然,我錯過了一些東西,但我找不到問題。看着約負向前查找一些信息,但我得到了一個語法不甲骨文工作:
http://www.regular-expressions.info/lookaround.html
除非Oracle發明了自己的正則表達式語法,`[^ ...]`是否定字符組,即匹配一個未指定的字符來代替省略號。 – delnan 2011-01-10 21:29:04