Fra*_*urt 3 postgresql pattern-matching replace
默认情况下,在 PostgreSQL 中,regexp_replace()
替换字符串中第一次出现的子字符串,同时replace()
替换字符串中所有出现的子字符串。为什么默认行为不同?
(我知道regexp_replace
可以使用该g
选项替换字符串中所有出现的子字符串。)
例子:
SELECT regexp_replace('hello world', 'o', 'z'); -- returns "hellz world"
SELECT regexp_replace('hello world', 'o', 'z', 'g'); -- returns "hellz wzrld"
SELECT replace('hello world', 'o', 'z'); -- returns: "hellz wzrld"
Run Code Online (Sandbox Code Playgroud)
因为 Postgresreplace()
是一个标准的 SQL 函数,它的工作方式与其他 RDBMS 中的相同。示例:replace()
在 SQL Server 中:
用另一个字符串值替换所有出现的指定字符串值。
虽然regexp_replace()
用于...
替换匹配 POSIX 正则表达式的子字符串。
正则表达式的处理显然受 POSIX 标准的指导,并且与实现它的其他工具相同。手册:
POSIX 正则表达式提供了比
LIKE
andSIMILAR TO
运算符更强大的模式匹配方法。许多 Unix 工具(例如egrep
、sed
、 或 )awk
使用与此处描述的语言类似的模式匹配语言。
归档时间: |
|
查看次数: |
22222 次 |
最近记录: |