Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取替换数据(python 3.3)_Python_String_Replace - Fatal编程技术网

获取替换数据(python 3.3)

获取替换数据(python 3.3),python,string,replace,Python,String,Replace,例如,我有一个字符串或此类字符串的列表: text = '000 #-tags-2-7-# 001 002 003 004 05 06 07 08 SDFGSDFG #-tags-3-9-#' keys = ['key-1', 'key-2', 'key-3', 'key-4', 'key-5', 'key-6', 'key-7', 'key-8', 'key-9', 'key-10'] 我需要替换键[randint(2,7)]上的结果上的#-tags-2-7-#和键[randint(2,7)

例如,我有一个字符串或此类字符串的列表:

text = '000 #-tags-2-7-# 001 002 003 004 05 06 07 08 SDFGSDFG #-tags-3-9-#'
keys = ['key-1', 'key-2', 'key-3', 'key-4', 'key-5', 'key-6', 'key-7', 'key-8', 'key-9', 'key-10']
我需要替换
键[randint(2,7)]
上的结果上的#-tags-2-7-#和
键[randint(2,7)]
上的#-tags-3-9-#等。我需要每次从#-tags-#中获取两个整数,并将其发送到
键[randint(*,*)
,然后发送结果,而不是#-tags-#您可以使用模式来替换()-#“与所需的字符串:

import re
import random
text = '000 #-tags-2-7-# 001 002 003 004 05 06 07 08 SDFGSDFG #-tags-3-9-#'
keys = ['key-1', 'key-2', 'key-3', 'key-4', 'key-5', 'key-6', 'key-7', 'key-8', 'key-9', 'key-10']

def tag_replace(match):
    start, end = map(int, match.groups())
    return ', '.join(random.sample(keys, random.randint(start, end)))

print(re.sub(r'#-tags-(\d)-(\d)-#', tag_replace, text))
打印(随机结果,例如)

注意:我认为您希望将
#-tags-3-9-#
替换为
键中
n
项的逗号分隔列表,其中
n=random.randint(3,9)
您可以使用所需字符串替换模式
r'#-tags-(\d)-(\d)-#

import re
import random
text = '000 #-tags-2-7-# 001 002 003 004 05 06 07 08 SDFGSDFG #-tags-3-9-#'
keys = ['key-1', 'key-2', 'key-3', 'key-4', 'key-5', 'key-6', 'key-7', 'key-8', 'key-9', 'key-10']

def tag_replace(match):
    start, end = map(int, match.groups())
    return ', '.join(random.sample(keys, random.randint(start, end)))

print(re.sub(r'#-tags-(\d)-(\d)-#', tag_replace, text))
打印(随机结果,例如)


注意:我认为您希望将
#-tags-3-9-#
替换为
n
项的逗号分隔列表,其中
n=random.randint(3,9)

#-tags-3-9-#表示插入3、4或5。。。或者9个带分隔符的“keys”字符串。以同样的方式处理和替换其他#-标记----#需要以某种方式从“标记”获取参数,以便知道需要从“键”获取多少随机字符串#-标记-3-9-#意味着插入3、4或5。。。或者9个带分隔符的“keys”字符串。应该以同样的方式处理和替换其他#-标记----#需要以某种方式从“标记”获取参数,以便知道需要从“键”获取多少随机字符串