正则表达式用单个不起作用替换多个模式
Regex to replace multiple patterns with single not working
我正在努力用 HANA 中的单个随机数替换多次出现的字符串 0000 SQL
我用过这些模式
'(\w+)\s+'
'([0000 ]+) '
但除最后一次出现的模式外,所有出现的地方都被替换
SELECT REPLACE_REGEXPR('(\w+)\s+' IN '0000 0000 0000' WITH ROUND(RAND()*1000) OCCURRENCE ALL) AS a2
FROM DUMMY;
当前输出为
RANDOM 0000
预期输出是
RANDOM
试试这个正则表达式:
((0000) +)+(0000)
如果可以使用任意数字且次数多\少,则 4:
(\d+ +)+\d+
祝你好运!
您可以使用
\b(\d+)(?:\s+)+\b
您需要 \d
来匹配数字(如果您需要匹配字母并且 _
继续使用 \w
)。
此外,要匹配模式序列的 1 次或多次重复,您需要 (?:....)+
、+
量化的 non-capturing 组。
图案详情
\b
- 单词边界
(\d+)
- 第 1 组:一个或多个数字
(?:\s+)+
- 1+ 个空格的 1+ 次重复以及与第 1 组中捕获的值相同的值
\b
- 单词边界
我正在努力用 HANA 中的单个随机数替换多次出现的字符串 0000 SQL
我用过这些模式
'(\w+)\s+'
'([0000 ]+) '
但除最后一次出现的模式外,所有出现的地方都被替换
SELECT REPLACE_REGEXPR('(\w+)\s+' IN '0000 0000 0000' WITH ROUND(RAND()*1000) OCCURRENCE ALL) AS a2
FROM DUMMY;
当前输出为
RANDOM 0000
预期输出是
RANDOM
试试这个正则表达式:
((0000) +)+(0000)
如果可以使用任意数字且次数多\少,则 4:
(\d+ +)+\d+
祝你好运!
您可以使用
\b(\d+)(?:\s+)+\b
您需要 \d
来匹配数字(如果您需要匹配字母并且 _
继续使用 \w
)。
此外,要匹配模式序列的 1 次或多次重复,您需要 (?:....)+
、+
量化的 non-capturing 组。
图案详情
\b
- 单词边界(\d+)
- 第 1 组:一个或多个数字(?:\s+)+
- 1+ 个空格的 1+ 次重复以及与第 1 组中捕获的值相同的值\b
- 单词边界