我需要替换给定字符串中第一个出现的子字符串。 如果绳子断了 "My name is Adam" 我想替换第一个 "a" 与 "@" . 所以我想要的结果是 "My n@me is Adam" . 在mysql中,有一个函数 regexp_replace 它有一个可选参数 occurrence 指定要替换的引用数。但不幸的是,该可选参数在配置单元函数中不存在。有什么建议吗?
hive> select regexp_replace('My name is Adam','^(.*?)a','$1@');
OK
My n@me is Adam
Time taken: 0.061 seconds, Fetched: 1 row(s)
图案 '^(.*?)a' 指:
^ - the beginning of the string
.*? - any character (.) zero or more times (*) not greedy (?)
() - remember group, we will refer it in the replacement string as $1
a - 'a' character literally
替换字符串 '$1@' 指:
$1 - group number one in the pattern (everything before 'a')
@ - '@' character literally
1条答案
按热度按时间zengzsys1#
图案
'^(.*?)a'
指:替换字符串
'$1@'
指:您可以在这里调试regexp:regex101.com