REGEXP_REPLACE("My dog is funny and happy", r"(\S \S \S )", r"*")這是我實作這一目標的 SQL。我的輸出應該是這樣的 = 我的狗很有趣 * 很開心
當我嘗試上述查詢時,它洗掉了前幾個詞。我該如何解決這個問題?
uj5u.com熱心網友回復:
您應該使用反向參考:
REGEXP_REPLACE("My dog is funny and happy", r"^((?:\S \s ){4})", r"\1*")
REGEXP_REPLACE("My dog is funny and happy", r"^(?:\S \s ){4}", r"\0*")
請參閱正則運算式演示。詳情:
^- 字串的開始((?:\S \s ){4})- 第 1 組(\1在替換中將參考該組值):出現四次一個或多個非空格,后跟一個或多個空格。
\0 指整個匹配值。
請參閱regexp_replace 參考:
REGEXP_REPLACE(value, regexp, replacement)回傳 a
STRING,其中value匹配正則運算式的所有子字串regexp都替換為replacement。您可以在引數中使用反斜杠轉義的數字(\1 到 \9)
replacement來插入與regexp模式中相應括號組匹配的文本。使用 \0 參考整個匹配文本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/369579.html
上一篇:連接字串的意外行為
