SQL正则表达式中的插入符号
我正在研究正则表达式,但不知道这个插入符号的确切作用。我认为这个插入符号的意思是“不相等”,但在下面的查询中,我感到困惑:SQL正则表达式中的插入符号,sql,regex,oracle,Sql,Regex,Oracle,我正在研究正则表达式,但不知道这个插入符号的确切作用。我认为这个插入符号的意思是“不相等”,但在下面的查询中,我感到困惑: SELECT REGEXP_REPLACE('San Antonio', '(^[[:alpha:]]+)', 'CITY') TEST FROM DUAL; 结果: 安东尼奥市 “San”应该符合[:alpha:],所以我不理解插入符号函数在这里的作用。Carrat(^)也代表行的开头(美元($)代表行的结尾) 否定功能在方括号内: [^0-9] = anythi
SELECT REGEXP_REPLACE('San Antonio', '(^[[:alpha:]]+)', 'CITY') TEST
FROM DUAL;
结果:
安东尼奥市
“San”应该符合[:alpha:],所以我不理解插入符号函数在这里的作用。Carrat(^)也代表行的开头(美元($)代表行的结尾)
否定功能在方括号内:
[^0-9] = anything that is not a digit
[^a-zA-Z] = anything that is not an english letter
Carrat(^)也代表行的开头(美元($)代表行的结尾)
否定功能在方括号内:
[^0-9] = anything that is not a digit
[^a-zA-Z] = anything that is not an english letter
插入符号^(请注意正确的拼写)表示“在字符串开头”,但仅当它是匹配模式中的第一个字符时
'San'
不符合[:alpha:][/code>,因为[:alpha:][/code>是单个字母字符<代码>[…]
表示“匹配集”(只匹配方括号内列出的字符中的一个字符)<代码>[:alpha:]
表示任何单个字母字符。+
表示前面的“一个或多个”,因此'San'
匹配字符串开头的[[:alpha:]+
'Antonio'
也匹配,但它不在字符串的开头,因此不会被替换。如果您没有插入符号,两个单词都将替换为CITY
(尝试一下,您会看到)。插入符号^(请注意正确的拼写)表示“在字符串开头”,但仅当它是匹配模式中的第一个字符时
'San'
不符合[:alpha:][/code>,因为[:alpha:][/code>是单个字母字符<代码>[…]
表示“匹配集”(只匹配方括号内列出的字符中的一个字符)<代码>[:alpha:]
表示任何单个字母字符。+
表示前面的“一个或多个”,因此'San'
匹配字符串开头的[[:alpha:]+
'Antonio'
也匹配,但它不在字符串的开头,因此不会被替换。如果您没有插入符号,则两个单词都将替换为CITY
(尝试一下,您就会看到。)