我正在使用 Oracle 正则表达式,我想匹配一些字符串,然后是与另一个字符串不同的东西,然后是另一个字符串。
例如,我想匹配“testZZZtest”和“testAAAtest”,但没有“testABCtest”或“test bla bla ABC bla bla test”。
我正在尝试模式 'test[^ABC]*test',如下所示:
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
我得到了答案 13,即 testZZZtest 在原始字符串中的位置。
当然我错过了一些东西,但我找不到问题。寻找一些关于负前瞻的信息,但我得到了一个在 Oracle 中不起作用的语法: