Python 如何从数字列表中替换单个数字(从一组行中)?

Python 如何从数字列表中替换单个数字(从一组行中)?,python,Python,我是数据库新手,我想在我的数据库中这样做。 我应该使用word 2007、Python还是其他什么?我现在只有这两样东西 原始消息如下: 你好,你好吗ref=13515 DIFAOIDDODVJAKJEOIJKNVKLN的定义 ikvnoivwoeij,vn,nviojv nkavjoiewgkjvlkaior 此邮件有一个编号,该编号将被此列表中的编号替换 876191 11166524 1117225 1116953 798993 793519 1116737 1116691 1116364

我是数据库新手,我想在我的数据库中这样做。 我应该使用word 2007、Python还是其他什么?我现在只有这两样东西

原始消息如下:
你好,你好吗ref=13515
DIFAOIDDODVJAKJEOIJKNVKLN的定义
ikvnoivwoeij,vn,nviojv
nkavjoiewgkjvlkaior

此邮件有一个编号,该编号将被此列表中的编号替换

876191
11166524
1117225
1116953
798993
793519
1116737
1116691
1116364
1115635
909014
760195
689981
604787
1116217
1104482
869990
886290
1115893

而且消息本身应该复制粘贴该次数,因为该列表中有
个数字

所以我的结果应该是

你好,你好吗ref=876191
DIFAOIDDODVJAKJEOIJKNVKLN的定义
ikvnoivwoeij,vn,nviojv
nkavjoiewgkjvlkaior
你好,你好吗ref=11166524
DIFAOIDDODVJAKJEOIJKNVKLN的定义
ikvnoivwoeij,vn,nviojv
nkavjoiewgkjvlkaior
你好,你好吗ref=1117225
DIFAOIDDODVJAKJEOIJKNVKLN的定义
ikvnoivwoeij,vn,nviojv
nkavjoiewgkjvlkaior
等等

请注意,列表中的数字是6位、7位或8位数字


谢谢

这是一个有趣的问题,可以在sql server内部完成

首先,我将原始消息放入一个表-@messages\u original。 它没有必要是一张桌子,因为只有一张

    set nocount on

    declare @messages_original table ( i int not null identity(1,1) primary key clustered, mess varchar(1008) not null)

    declare @results table ( i int not null identity(1,1) primary key clustered, mess varchar(1008) not null)

    declare @numbers table ( i int not null identity(1,1) primary key clustered, num varchar(10) not null)

    declare @i int 
    declare @z int
    declare @number_ varchar(10) --- the number in the original message
    declare @number  varchar(10) --- the number that needs to be replace the original number and save to the @results

    insert into @messages_original values ('hello how are you ref=13515
    ofdifaoididpodvjakjeoijknvkln
    ikvnoivwoeij,vn,nviojv
    nkavjoiewgkjvlkaior')

     --I add the numbers into another table.

    insert into @numbers (num) values ('876191')
    insert into @numbers (num) values ('11166524')
    insert into @numbers (num) values ('1117225')
    insert into @numbers (num) values ('1116953')
    insert into @numbers (num) values ('798993')
    insert into @numbers (num) values ('793519')
    insert into @numbers (num) values ('1116737')
    insert into @numbers (num) values ('1116691')
    insert into @numbers (num) values ('1116364')
    insert into @numbers (num) values ('1115635')
    insert into @numbers (num) values ('909014')
    insert into @numbers (num) values ('760195')
    insert into @numbers (num) values ('689981')
    insert into @numbers (num) values ('604787')
    insert into @numbers (num) values ('1116217')
    insert into @numbers (num) values ('1104482')
    insert into @numbers (num) values ('869990')
    insert into @numbers (num) values ('886290')
    insert into @numbers (num) values ('1115893')

select @i = 1,
       @z = count(*) from @numbers 

select @number_ =  SubString(mess,PATINDEX('%[0-9]%',mess),Len(mess)),
       @number_ =  SubString(@number_,0,PATINDEX('%[^0-9]%',@number_))
from
@messages_original 
where i = 1


while (@i <= @z) begin

        select @number = num from @numbers where i = @i

        insert into @results(mess)
        select replace(mess,@number_,@number)
        from
        @messages_original 
        where i = 1



select @i = @i+ 1

end /*while*/


select * from @results
将nocount设置为on
声明@messages_原始表(i int not null identity(1,1)主键集群,mess varchar(1008)not null)
声明@results表(i int not null identity(1,1)主键集群,mess varchar(1008)not null)
声明@numbers表(i int not null identity(1,1)主键集群,num varchar(10)not null)
声明@i int
声明@z int
声明@number\uuvarchar(10)——原始消息中的数字
声明@number varchar(10)--需要替换原始数字并保存到@results的数字
插入@messages\u原始值('您好,您好ref=13515
DIFAOIDDODVJAKJEOIJKNVKLN
ikvnoivwoeij,vn,nviojv
nkavjoiewgkjvlkaior')
--我把数字加到另一个表中。
插入@numbers(num)值('876191')
插入@numbers(num)值('11166524')
插入@numbers(num)值('1117225')中
插入@numbers(num)值('1116953')中
插入@numbers(num)值('798993')
插入@numbers(num)值('793519')
插入@numbers(num)值('1116737')
插入@numbers(num)值('1116691')中
插入@numbers(num)值('1116364')
插入@numbers(num)值('1115635')
插入@numbers(num)值('909014')
插入@numbers(num)值('760195')
插入@numbers(num)值('689981')
插入@numbers(num)值('604787')
插入@numbers(num)值('1116217')
插入@numbers(num)值('1104482')
插入@numbers(num)值('869990')
插入@numbers(num)值('886290')中
插入@numbers(num)值('1115893')
选择@i=1,
@z=从@numbers开始的计数(*)
选择@number\=SubString(mess,PATINDEX('%[0-9]]',mess),Len(mess)),
@数字=子字符串(@number,0,PATINDEX(“%[^0-9]”,@number))
从…起
@原始信息
其中i=1

而(@我非常感谢你。我完全迷路了。奎师那,没有写“谢谢你”,如果答案有帮助,你可以投赞成票,或者接受,或者两者都接受。否则,没关系。我将把它留在这里,因为希望它能帮助别人,对我来说,这是sql中的一个很酷的练习。谢谢你的问题。你用python提问,我用sql回答,这真的是我的错。