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 正则表达式提供了比
LIKEandSIMILAR TO运算符更强大的模式匹配方法。许多 Unix 工具(例如egrep、sed、 或 )awk使用与此处描述的语言类似的模式匹配语言。
| 归档时间: |
|
| 查看次数: |
22222 次 |
| 最近记录: |