我正在开发一个程序,我想编写一个接受以下格式值的函数
"AAAA BBBB" CCCC DDDD EEEE "FFFF GGGG HHHH"
我想用" _"替换上面的空格。并需要输出如下所示的格式 (请注意,这只适用于双引号内的字符串)
"AAAA_BBBB" CCCC DDDD EEEE "FFFF_GGGG_HHHH"
任何人都可以帮助我
答案 0 :(得分:3)
以下是您可以根据需要添加到函数中的逻辑。
DECLARE @In VARCHAR(50) = '"AAAA BBBB" CCCC DDDD EEEE "FFFF GGGG HHHH"'
DECLARE @Quote SMALLINT = -1, @Index INT = 1, @Char CHAR(1)
WHILE @Index <= LEN(@In) BEGIN
SET @Char = SUBSTRING(@In, @Index, 1)
IF @Char = '"'
SET @Quote = @Quote * -1
IF @Char = ' ' AND @Quote > 0
SET @In = STUFF(@In, @Index, 1, '_')
SET @Index = @Index + 1
END
PRINT @In
<强>输出强>
"AAAA_BBBB" CCCC DDDD EEEE "FFFF_GGGG_HHHH"