SQL 正则表达式中的插入符号

Cod*_*ody 1 regex sql oracle

我正在研究正则表达式,但无法弄清楚这个插入符号究竟做了什么。我认为这个插入符号的意思是“不等于”,但在下面的这个查询中,我很困惑:

SELECT REGEXP_REPLACE('San Antonio', '(^[[:alpha:]]+)', 'CITY') TEST
FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

结果:

城市安东尼奥

'San' 应该符合 [:alpha:] 的要求,所以我不明白 caret 函数在这里做了什么。

Dav*_*itz 5

Carrat (^) 也代表行的开头(美元 ($) 代表行的结尾)。

^Hello$  = the word Hello and nothing more
^Hello.* = something that starts with Hello
Run Code Online (Sandbox Code Playgroud)

否定功能在方括号内:

[^0-9]    = anything that is not a digit  
[^a-zA-Z] = anything that is not an english letter   
Run Code Online (Sandbox Code Playgroud)