当前位置: 代码迷 >> Sql Server >> MSSQL中Replace函数怎么替换掉相同开头的代码段?正则表达式
  详细解决方案

MSSQL中Replace函数怎么替换掉相同开头的代码段?正则表达式

热度:31   发布时间:2016-04-24 10:08:32.0
MSSQL中Replace函数如何替换掉相同开头的代码段?正则表达式求助
各位朋友,你们好
我这里请教一个问题,已解决面对的麻烦。

一个SQL应该是被黑了,大量表格中的一些字段有内容的末尾都被添加上了一串字符,以“</title><style>.aee6{position:absolute;”开头的长代码。我开始没仔细看,使用了下面的语句,对某表某字段进行清理。

       UPDATE    Users
SET             Permission = REPLACE(Permission, 
                      '</title><style>.aee6{position:absolute;clip:rect(418px,auto,auto,418px);}此处省略200字符',
                       '')


结果发现,有些字段设计的时候,长度设计的短,末尾添加上了长短不一的该字符串。导致我查询Replace的时候,没有查到它。

所以现在想换个方法,想查询以“</title><style>.aee6{position:absolute”开头的字符串,然后替换为空。
但是不能直接使用通配符,正则表达式各位谁会,帮忙给点意见呗。网上看的也看不太懂。
我想遍历这个库的所有表所有字段,把那段恶意代码清除掉,最好的办法是什么啊?
感谢各位。
------解决方案--------------------
UPDATE Users
  SET  Permission = LEFT(Permission,
                         CHARINDEX(Permission, '</title><style>.aee6{position:absolute'))
 WHERE CHARINDEX(Permission, '</title><style>.aee6{position:absolute')>0

------解决方案--------------------
UPDATE Users
  SET  Permission = LEFT(Permission,
                         CHARINDEX(Permission, '</title><style>.aee6{position:absolute')-1)
 WHERE CHARINDEX(Permission, '</title><style>.aee6{position:absolute')>0