替换Python中除了第一次出现的子字符串之外的所有内容?

2023-11-26

我有一个如下所示的字符串

string = "SELECT sdfdsf SELECT sdrrr SELECT 5445ff"

现在我想替换每一个出现的SELECT除了第一个@@@SELECT所以最后字符串看起来像这样

"SELECT sdfdsf @@@SELECT sdrrr @@@SELECT 5445ff"

现在Pythonreplace()替换所有出现的 SELECT。

string = string.replace("SELECT", "@@@SELECT)

所以字符串就变成了

"@@@SELECT sdfdsf @@@SELECT sdrrr @@@SELECT 5445ff"

如何确保除了第一个实例之外,其他所有内容都被替换?

Note:该字符串可以出现 n 次SELECT


加上额外的“reversed” 替换步骤:

s = "SELECT sdfdsf SELECT sdrrr SELECT 5445ff"
res = s.replace("SELECT", "@@@SELECT").replace("@@@SELECT", "SELECT", 1)
print(res)

输出:

SELECT sdfdsf @@@SELECT sdrrr @@@SELECT 5445ff

更复杂但确保目标词边界的方法可能如下:

import re

def make_replacer():
    rpl = ''
    def inner(m):
        nonlocal rpl
        res = rpl + m.group()
        rpl = '@@@'
        return res
    return inner

s = "SELECT sdfdsf SELECT sdrrr SELECT 5445ff"
res = re.sub(r'\bSELECT\b', make_replacer(), s)
print(res)   # SELECT sdfdsf @@@SELECT sdrrr @@@SELECT 5445ff
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

替换Python中除了第一次出现的子字符串之外的所有内容? 的相关文章

  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 使用 Pycharm 在 Windows 下启动应用程序时出现 UnicodeDecodeError

    问题是当我尝试启动应用程序 app py 时 我收到以下错误 UnicodeDecodeError utf 8 编解码器无法解码位置 5 中的字节 0xb3 起始字节无效 整个文件app py coding utf 8 from flask
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql

随机推荐

  • 使用 jQuery 查看输入是否有空格

    我正在尝试编写一个函数来读取输入值 并确定在其创建过程中是否使用了空格 我并不是想修剪任何东西 只是看看它是否需要修剪的能力 我什至不知道从哪里开始 所以我没有任何代码可供查看 如果可以的话请帮忙 我正在尝试这个解决方案 但它似乎不起作用
  • 如何将 MQ Server 回复消息与正确的请求相匹配

    我正在连接到 IBM Websphere MQ 我希望能够将回复消息与正确的请求消息相匹配 我已经翻阅了数百页才能得到这个 但没有运气 我有一个类 MQHandler 它将一条消息发送到一个定义的队列 并从另一个队列读取请求 这工作得很好
  • 如何使用 HtmlUnit 获取 HTML 页面

    我知道你可能认为这个问题很愚蠢 但我需要使用 HtmlUnit 但是 它以 XML 或文本形式返回页面 我不知道如何获取纯HTML 与浏览器返回的源代码相同 我需要这个 因为我需要使用一些编写的模块 有任何想法吗 您可以使用以下代码来实现您
  • 为什么两阶段查找无法选择“swap”的重载版本?

    我在学习这个令人着迷的答案 to a 微妙的问题关于实施的最佳实践swap用户定义类型的函数 我的问题最初是由讨论向命名空间添加类型的非法性std 我不会在此处重新打印上述链接答案中的代码片段 相反 我想理解答案 我在上面链接的答案在第一个
  • JFrame.dispose() 与 System.exit()

    这两种方法有什么区别 System exit and JFrame dispose 如果我们想在单击按钮时关闭 Java Swing 应用程序 我应该使用哪种方法 System exit 导致 Java VM 完全终止 JFrame dis
  • 更新到 Angular 8 CLI 后抛出“.getColorDepth 不是函数”

    我的一位同事将你的项目升级到 Angular 8 我拉了他的分支并运行npm install 在他的分支上一切正常 现在 每次运行任何 ng 命令时 我都会遇到相同的错误 C xxx party ui node modules angula
  • 使用 ajax 调用时如何拦截 jQuery 链接?

    我可能正在做一些愚蠢的事情 但是如果我有一个正常的链接 例如 div div a href Not Intercepted A link a 我将 jQuery 单击事件附加到链接 如下所示 interceptMe click functi
  • 散列密码和加密密码之间的区别

    目前得票最高的是这个问题 states 另一个问题虽然与安全相关 但与其说不是安全问题 而且完全失败了理解散列密码和加密密码之间的区别 最常见于程序员试图提供不安全的 提醒我密码 功能的代码中 这个区别到底是什么 我一直认为散列是加密的一种
  • Rails Bootstrap 导航栏和refineryCMS

    有人在refineryCMS 中实现了 Rails Bootstrap Navbar 吗 我很难弄清楚如何呈现下拉菜单 这应该是实现这一目标的正确方法 menu html erb div div
  • TypeScript 在 WebStorm 7 中将所有 ts 文件编译为单个 JavaScript 文件

    我的项目中有很多 ts 文件 WebStorm 将每个 ts 文件构建为 js 文件 但我不想那样 我有一个 app ts 文件 所有其他 ts 文件都将构建在该 app ts 文件中 我怎样才能在 WebStorm 7 中做到这一点 CL
  • jquery .on('input') 不会单独在 ie8 中被触发

    我遇到了 IE8 特有的问题 此事件不会单独在 IE8 中触发 但在 IE9 和其他浏览器 如 Firefox 和 Chrome 中运行良好 myId on input function do something 如果 IE8 中有相同的解
  • 从python中的网络驱动器号获取完整的计算机名称

    我正在使用 python 来填充一个表 其中包含多个存储文件的文件路径 但是 该路径需要具有完整的网络驱动器计算机名称 而不仅仅是驱动器号 即 计算机名 文件夹 子文件夹 文件 not P 文件夹 子文件夹 文件 我已经研究过使用 win3
  • java.lang.UnsupportedClassVersionError 不支持的major.minor版本51.0 [重复]

    这个问题在这里已经有答案了 我正在尝试构建一个应用程序 但它给出了一些错误 我的JDK版本如下 java version 1 6 0 30 Java TM SE Runtime Environment build 1 6 0 30 b12
  • 如何删除无意中出现的图像填充?

    我在一个容器中有三个图像 应该无缝堆叠 但它们之间存在一些填充 您可以在此处查看该页面 http www arbitersoflight net media 左侧容器中的三个大按钮就是有问题的按钮 这是容器的代码 CSS mainBoxFu
  • 基类中的方法可以以某种方式返回子类吗?

    我举个例子 以便您更好地理解我的意思 public class Base public Base Common return this public class XBase Base public XBase XMethod return
  • 参考错误:“驱动器”未定义

    在 Google App Maker 中 我正在 ServerScript 中编写一个函数 用于将用户上传的 Excel 电子表格转换为 Google 电子表格 我正在使用这段代码 https stackoverflow com a 355
  • Google API Python unauthorized_client:请求中未经授权的客户端或范围

    尝试运行我的代码时出现此错误 oauth2client client AccessTokenRefreshError unauthorized client Unauthorized client or scope in request 这
  • 谷歌分析的替代品是什么[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我需要在我的网络应用程序中跟踪唯一访客数量 我真的很想使用 Google Analytics 但由于 google 施加的负载限制 我将无法使用它们
  • javascript 日期到 java.time.LocalDate

    我正在尝试将 json 数据发布到 Java 中的控制器 这是我的控制器 ResponseBody RequestMapping value schoolId method RequestMethod POST public ClassGr
  • 替换Python中除了第一次出现的子字符串之外的所有内容?

    我有一个如下所示的字符串 string SELECT sdfdsf SELECT sdrrr SELECT 5445ff 现在我想替换每一个出现的SELECT除了第一个 SELECT所以最后字符串看起来像这样 SELECT sdfdsf S