[英]Replacing special characters and double spaces
我們有一個字符串'AMERICAN:BEER~ INVENTIONS CHOCOLATE-FEVER'
。
我們試圖刪除特殊字符並用空格替換它,然后檢查我們是否創建了任何雙空格,然后我們嘗試用一個空格替換雙空格。
因此,如果我們刪除特殊字符,並刪除雙空格,我們將留下'AMERICAN BEER INVENTIONS CHOCOLATE FEVER'
。
這里的問題是,我們無意中刪除了'INVENTIONS CHOCOLATE'
之間的默認雙空格。
我們怎樣才能避免這種情況?
我目前的做法:
去除特殊字符:
UPDATE xxxx.xxxxx SET xxxx = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(xxxx, '<', ' '), '>', ' '), '(', ' '), ')', ' '), ':', ' '), '#', ' '), '~', ' ') WHERE xxxx LIKE '%[<>:()#~]%';
傳遞 function 中的列以刪除雙空格:
SET @str = TRIM(@str); WHILE CHARINDEX(' ', @str) > 0 SET @str = REPLACE(@str, ' ', ' ');
以下對你有用嗎?
使用translate轉換為單個字符,然后刪除額外的空格,最后替換不需要的字符:
declare @s varchar(50) = 'AMERICAN:BEER ~ INVENTIONS CHOCOLATE-FEVER'
select Replace(Replace(Replace(Translate(@s, '<>:()~-','#######'), '# ', '#'), ' #', '#'), '#', ' ');
結果AMERICAN BEER INVENTIONS CHOCOLATE FEVER
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.