Sql 正则表达式将多个模式替换为单个不工作模式

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

我正在用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 0000
    
    RANDOM
    
    试试这个正则表达式:

    ((0000) +)+(0000)
    

    如果可以使用任意数字和任意次数,则4:

    (\d+ +)+\d+
    
    祝你好运

    您可以使用

    \b(\d+)(?:\s+\1)+\b
    

    您需要
    \d
    来匹配数字(如果您需要匹配字母和
    \u
    请继续使用
    \w
    )。 此外,为了匹配一系列模式的1个或多个重复,您需要
    (?:..)+
    ,一个
    +
    量化非捕获组

    图案细节

    • \b
      -单词边界
    • (\d+)
      -第1组:一个或多个数字
    • (?:\s++\1)+
      -1+重复1+个空格,与组1中捕获的值相同
    • \b
      -单词边界
    :


    谢谢海锐!实际字符串在本例中。你能调查一下吗?我试图替换数字,但不是文本:)@saurabhC。你想准确地替换4个零吗?@saurabhC。现在看看答案。