吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 726|回复: 10
收起左侧

[求助] python字符串替换的问题

[复制链接]
云烟成雨 发表于 2023-2-18 16:19
问题例子如下:原字符串:abc{s1}123{s2}efg
我想把以字符{s1}开头,以字符串{s2}结尾的中间的字符串123替换成888,应该怎么写?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

sgbyg 发表于 2023-2-18 16:20
本帖最后由 sgbyg 于 2023-2-18 16:24 编辑

print(re.sub(r'{s1}123{s2}', '{s1}888{s2}', 'abc{s1}123{s2}efg'))

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
ccwuax + 1 + 1 我很赞同!

查看全部评分

layuai 发表于 2023-2-18 16:33
wangwei0511 发表于 2023-2-18 16:51
您可以使用 Python 的字符串方法 find() 和 replace() 来实现这个任务。以下是一种可能的实现方法:
s = "abc{s1}123{s2}efg"
s1 = "{s1}"
s2 = "{s2}"
start = s.find(s1) + len(s1)
end = s.find(s2)
if start > 0 and end > 0 and end > start:
    s = s[:start] + "888" + s[end:]
print(s)


在这个示例代码中,我们先定义了原始字符串 s,以及要查找和替换的子字符串 {s1} 和 {s2}。然后,我们使用字符串方法 find() 来查找 {s1} 和 {s2} 在原始字符串中的位置,这可以帮助我们确定要替换的子字符串的起始位置和结束位置。如果找到了 {s1} 和 {s2} 并且它们之间有其他字符,我们使用字符串切片和 replace() 方法将 123 替换为 888。最后,我们打印输出替换后的字符串。

注意,这个实现方法只会替换第一个匹配到的子字符串 {s1} 和 {s2} 之间的内容。如果您想替换多个匹配,可以考虑使用 while 循环和字符串方法 find() 来反复查找和替换,直到没有更多匹配为止。

免费评分

参与人数 1吾爱币 -8 收起 理由
侃遍天下无二人 -8 不允许照搬chatgpt回复

查看全部评分

xiaoxiaodeniao 发表于 2023-2-18 16:59
本帖最后由 xiaoxiaodeniao 于 2023-2-18 17:00 编辑

a=‘abc{s1}123{s2}efg’
a=‘abc{s1}888{s2}efg’

替换好了,拿去用吧
bj201809 发表于 2023-2-18 16:59
[Python] 纯文本查看 复制代码
import re

init_str = "abc{s1}123{s2}efg"
aim_value = "{s1}目标值{s2}"

res_str = re.sub(r"{s1}.*?{s2}",aim_value,init_str)

print(res_str)
wangwei0511 发表于 2023-2-18 17:07
wangwei0511 发表于 2023-2-18 16:51
您可以使用 Python 的字符串方法 find() 和 replace() 来实现这个任务。以下是一种可能的实现方法:
s = " ...

咋不允许照搬,这个是对的就可以啊
yhlg 发表于 2023-2-18 17:13
wangwei0511 发表于 2023-2-18 17:07
咋不允许照搬,这个是对的就可以啊

同意,为什么那么抗拒chatgpt,对就行了!
DaveBoy 发表于 2023-2-18 20:43
 楼主| 云烟成雨 发表于 2023-2-19 11:04
sgbyg 发表于 2023-2-18 16:20
print(re.sub(r'{s1}123{s2}', '{s1}888{s2}', 'abc{s1}123{s2}efg'))

感谢,可用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 01:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表