hive regexp_replace替换字符串后面的第一个匹配项,并返回完整的字符串

tjvv9vkg  于 2023-08-04  发布在  Hive
关注(0)|答案(1)|浏览(192)

我有一个字符串,内容是“不要替换这个文本,而是替换最后一个文本<-- this one”。
我想替换字符串后面的第一个匹配,并返回完整的字符串,如下所示:“不替换此文本,而是替换最后一个<-- this one

select regexp_replace("dont replace this text, but instead replace the last text <-- this one", "\\b(text)\\b", "ONE")

字符串
执行上述操作将用“ONE”替换“text”的两个示例,这不是我想要的。
我试过:

select regexp_replace("dont replace this text, but instead replace the last text <-- this one", "\\b.*(text)\\b", "ONE")


但是这一个在比赛前切断了所有的东西,我只剩下“一个<--这一个”

4uqofj5v

4uqofj5v1#

如果Hive的正则表达式支持负lookaheads,你可以使用这个版本:

SELECT REGEXP_REPLACE(
    'dont replace this text, but instead replace the last text',
    '\\btext\\b(?!.*\\btext\\b)',
    'ONE'
)

字符串

相关问题