以下正则表达式仅使用反向引用数字来提取匹配文本的一部分:
注意:为了清晰起见,此示例进行了简化,并且当然不需要超过反向引用9。
SELECT regexp_replace('ABCDEFGHIJ','(\w)(\w)(\w)(\w)(\w)(\w)(\w)(\w)(\w)(\w)','\2');
B
如何在第九个匹配子串之后进行反向引用?
以下方法不起作用(只返回第一个匹配项+0),使用$10或${10}也不行:
SELECT regexp_replace('ABCDEFGHIJ','(\w)(\w)(\w)(\w)(\w)(\w)(\w)(\w)(\w)(\w)','\10')
A0
注意:为了清晰起见,此示例进行了简化,并且当然不需要超过反向引用9。
\n
,其中n
为1-9,或\&
来包含整个匹配。因此,它不受支持。但是,您可以尝试使用regexp_split_to_array()
或regexp_split_to_table()
编写更复杂的查询。 - Sam\111
作为替换时会发生什么? - user557597