Sql 正则表达式将多个模式替换为单个不工作模式
我正在用HANA SQL中的单个随机数替换字符串0000的多次出现 我用过这些模式Sql 正则表达式将多个模式替换为单个不工作模式,sql,regex,hana,Sql,Regex,Hana,我正在用HANA SQL中的单个随机数替换字符串0000的多次出现 我用过这些模式 '(\w+\s+\1' ([0000]+)\1' 但是,除了模式的最后一个引用之外,所有引用都将被替换 SELECT REPLACE_REGEXPR('(\w+)\s+\1' IN '0000 0000 0000' WITH ROUND(RAND()*1000) OCCURRENCE ALL) AS a2 FROM DUMMY; 电流输出为 RANDOM 0000 RANDOM 预期产量为 RANDOM
'(\w+\s+\1'
SELECT REPLACE_REGEXPR('(\w+)\s+\1' IN '0000 0000 0000' WITH ROUND(RAND()*1000) OCCURRENCE ALL) AS a2
FROM DUMMY;
电流输出为
RANDOM 0000
RANDOM
预期产量为
RANDOM 0000
RANDOM
试试这个正则表达式:
((0000) +)+(0000)
如果可以使用任意数字和任意次数,则4:
(\d+ +)+\d+
祝你好运 您可以使用
\b(\d+)(?:\s+\1)+\b
见
您需要\d
来匹配数字(如果您需要匹配字母和\u
请继续使用\w
)。
此外,为了匹配一系列模式的1个或多个重复,您需要(?:..)+
,一个+
量化非捕获组
图案细节
-单词边界\b
-第1组:一个或多个数字(\d+)
-1+重复1+个空格,与组1中捕获的值相同(?:\s++\1)+
-单词边界\b
谢谢海锐!实际字符串在本例中。你能调查一下吗?我试图替换数字,但不是文本:)@saurabhC。你想准确地替换4个零吗?@saurabhC。现在看看答案。