簡體   English   中英

替換特殊字符和雙空格

[英]Replacing special characters and double spaces

我們有一個字符串'AMERICAN:BEER~ INVENTIONS CHOCOLATE-FEVER'

我們試圖刪除特殊字符並用空格替換它,然后檢查我們是否創建了任何雙空格,然后我們嘗試用一個空格替換雙空格。

因此,如果我們刪除特殊字符,並刪除雙空格,我們將留下'AMERICAN BEER INVENTIONS CHOCOLATE FEVER'

這里的問題是,我們無意中刪除了'INVENTIONS CHOCOLATE'之間的默認雙空格。

我們怎樣才能避免這種情況?

我目前的做法:

  1. 去除特殊字符:

     UPDATE xxxx.xxxxx SET xxxx = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(xxxx, '<', ' '), '>', ' '), '(', ' '), ')', ' '), ':', ' '), '#', ' '), '~', ' ') WHERE xxxx LIKE '%[<>:()#~]%';
  2. 傳遞 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM