首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取替换数据(python3.3)

获取替换数据(python3.3)
EN

Stack Overflow用户
提问于 2013-08-23 18:49:59
回答 1查看 76关注 0票数 1

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

代码语言:javascript
复制
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']

我需要替换来自keys[randint(2, 7)]的结果的#-标记-2-7-#和keys[randint(2, 7)]上的#-标记-3-9-#。我需要每次从#-标记中得到两个整数--#-#并将它发送到keys[randint(*, *)],而不是发送结果#-标记--#-#

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-23 18:55:15

可以使用re.sub将模式r'#-tags-(\d)-(\d)-#'替换为所需的字符串:

代码语言:javascript
复制
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))

打印(随机结果,如)

代码语言:javascript
复制
000 key-8, key-7, key-3 001 002 003 004 05 06 07 08 SDFGSDFG key-9, key-1, key-7, key-3, key-4, key-10, key-6

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18409851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档