Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用它们的索引替换子字符串的几个匹配项

用它们的索引替换子字符串的几个匹配项
EN

Stack Overflow用户
提问于 2020-02-14 08:32:36
回答 3查看 45关注 0票数 0

假设您有一个具有多次出现相同子字符串的字符串,那么最好的一行将是用包含数学索引的另一个子字符串替换匹配吗?例如,假设您有以下字符串:This is a test.,我们希望用X和它们的索引替换is的所有出现,使其类似于:ThX-0 X-1 a test.

对此有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-14 08:37:07

Perl来救我!

代码语言:javascript
运行
AI代码解释
复制
echo 'This is a test.' | perl -pe 's/is/"X-" . $c++/ge' 

  • -p逐行读取输入,在其上运行代码并输出已处理的line.
  • s///g全局运行替换,即在其possible
  • /e的所有位置上将替换部分解释为代码并运行它。这里的代码在字符串.上使用连接运算符X-$c的值,同时将其增加一个.

票数 1
EN

Stack Overflow用户

发布于 2020-02-14 08:41:28

awk中的简单解决方案是:

代码语言:javascript
运行
AI代码解释
复制
awk '{while(sub(/[iI][Ss]/,"X-"count++)){a=""};count=""} 1' Input_file

或者按照anubhava先生的评论,添加以上代码的较短版本:

代码语言:javascript
运行
AI代码解释
复制
awk '{while(sub(/[iI][Ss]/,"X-"count++));count=""} 1'  Input_file

简单的解释是,运行一个循环,直到找到一个替换,然后在其中几乎什么都不做:)最后打印行。

票数 1
EN

Stack Overflow用户

发布于 2020-02-14 09:00:38

这里有一个替代的gnu-awk一个班轮:

代码语言:javascript
运行
AI代码解释
复制
echo 'This is a test.' | awk -v RS='[iI][sS]' '{ORS = "X-" i++} 1'

代码语言:javascript
运行
AI代码解释
复制
ThX-0 X-1 a test.

若要重置每一行的计数器:

代码语言:javascript
运行
AI代码解释
复制
printf '%s\n%s\n' 'This is a test.' 'This is another this' |
awk -v RS='[iI][sS]' '/\n/{i=0} {ORS = "X-" i++} 1'

代码语言:javascript
运行
AI代码解释
复制
ThX-0 X-1 a test.
ThX-0 X-1 another thX-2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60230214

复制
相关文章
Java字符串匹配_正则匹配替换字符串
public static void main(String args[]) {
全栈程序员站长
2022/09/24
2.7K0
PHP经典:替换子字符串
substr_replace:整个字符串(从这里结束) 替换成这个变量 从什么开始(默认从下标0开始)
贵哥的编程之路
2021/10/09
2.1K0
Java在字符串中查找匹配的子字符串
示例: 在源字符串“You may be out of my sight, but never out of my mind.”中查找“my”的个数。输出:匹配个数为2
全栈程序员站长
2022/09/14
7.8K0
如何将字符串中的子字符串替换为给定的字符串?php strtr()函数怎么用?
strtr()函数是PHP中的内置函数,用于将字符串中的子字符串替换为给定的字符串。
吃猫的鱼Code
2023/02/02
5.7K0
C++ 代码 获取匹配的字符串数组或替换
C++ 代码 获取匹配的字符串数组或替换 #include <regex> #include <string> // 使用类 std::regex_iterator 来进行多次搜索. static std::string _strs = "... ..." ; std::regex _regex("<img [^>]+>"); std::cout << "sregex_iterator ====" << std::endl; auto words_begin =
用户1503405
2021/10/06
1.8K0
[数据结构拾遗]子字符串匹配常用算法总结
本专栏旨在快速了解常见的数据结构和算法。在需要使用到相应算法时,能够帮助你回忆出常用的实现方案并且知晓其优缺点和适用环境。
Rude3Knife的公众号
2019/08/08
9420
[数据结构拾遗]子字符串匹配常用算法总结
[数据结构拾遗]子字符串匹配常用算法总结
本专栏旨在快速了解常见的数据结构和算法。在需要使用到相应算法时,能够帮助你回忆出常用的实现方案并且知晓其优缺点和适用环境。
蛮三刀酱
2019/03/26
1.2K0
[数据结构拾遗]子字符串匹配常用算法总结
python替换第n个字符串_替换字符串中第n个出现的子字符串
我已经想出了下面的方法,它还考虑了替换所有出现在左边或右边的“旧”字符串的选项。当然,由于标准str.replace工作得很好,因此没有替换所有引用的选项。def nth_replace(string, old, new, n=1, option='only nth'):
用户7886150
2021/01/11
5.1K0
用指定字符替换字符串的 Python 程序
将字符串中的字符替换为指定的字符是具有许多不同应用程序的常见文本处理方法。有一些示例,例如数据转换、文本规范化和数据清理。在 Python 中,我们有一些字符串内置函数,可用于根据指定的字符将字符串转换为字符数组。构成单词的字符组称为字符串。在这个程序中,我们需要一个空字符串来存储新字符串。
很酷的站长
2023/08/11
3070
用指定字符替换字符串的 Python 程序
字符串匹配:字符串中查找某子串
我们在平时的软件开发,尤其是嵌入式开发,字符串匹配是非常重要的一个算法。而目前常用的字符串匹配算法有很多,下面就来介绍几个。
跋扈洋
2022/03/29
1.6K0
字符串的匹配算法_多字符串匹配
不要被事物的表面现象所迷惑,这个算法全称:Brute Force,有个拉风的中文名:暴力匹配算法。
全栈程序员站长
2022/09/25
2.4K0
字符串的匹配算法_多字符串匹配
scala 模式匹配的几个模式
Scala 的模式匹配是类似与正则匹配的的模式匹配,但是不仅仅如此,它还可以匹配对象的内在的构建形式.
Tim在路上
2020/08/04
1.3K0
delphi 封装获取子字符串几个函数
delphi7里面不像高级版本或是C#或JAVA里面有专门对字符串操作的方法,所以有时候我们需要自己做一些函数放到公共单元里面用于调用,下面列了几个字符串的截取的函数,可以直接拿来用。
Vaccae
2019/07/24
6920
检测到“RuntimeLibrary”的不匹配项
错误是引用的是静态库,但是配置成动态库导致的,只需要修改成”多线程(/MT)“就可 这段错误的意思就是我调用的是静态库,但是我程序是dll动态,但是我这dll调用静态库就调用不成了吗? 解决方案如下
用户3519280
2023/07/08
1.4K0
字符串内容的替换
字符串string类有成员函数replace() string str; string s1; str.replace(pos,len,s1);//使用s1的长度为len,从str的pos位置开始替换 str.replace(pos,len,s1,pos1,len1);//使用s1的子串从pos1开始长度为len1。替换str中从pos开始长度为len的长度
杨鹏伟
2021/06/17
3.1K0
JavaScript正则表达式获取子匹配项表达式
上面的代码能够匹配到目标字符串   mutiFile[sdsdsdsdsdsd]   中的  sdsdsdsdsdsd
唯一Chat
2022/09/30
4500
找出字符串中第一个匹配项的下标
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回  -1 。
狼啸风云
2023/10/09
4370
找出字符串中第一个匹配项的下标
Golang 使用正则来匹配出子字符串函数
const SERVICE_IMPL_RULE = ".*?\\.NewServer\\(new\\((.*?)\\)\\)" // getServiceImpl 返回: CompassInsigh
一个会写诗的程序员
2022/06/27
6520
用SQL高性能解决字符串的连续匹配
高性能解决有序集合的连续匹配问题 场景: A集合有8个元素:ali、boy、c、dog、e、f、g、h, B集合有5个元素:boy、c、dog、e、h 问B中是否包含连续4个以上的A集合元素?是即符合要求。 查阅网络资料甚至咨询论坛、技术群里的朋友,尽管方法各异,本质上还是循环遍历,最多考虑了利用bitmap提升下循环匹配性能。 难点:连续4个以上的计算与匹配 不论是集合还是字符串,4个连续的判断与匹配基本都依赖循环遍历算法,不论是KMP还是Boyer-Moore算法,如果一行记录都需要这么复杂的循环
企鹅号小编
2018/01/31
7800
用SQL高性能解决字符串的连续匹配
js替换html中的字符串,js怎么替换字符串?
在js中,可以使用str.replace()方法来替换字符串。replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;然后返回一个新的字符串。
全栈程序员站长
2022/08/30
24.4K0
js替换html中的字符串,js怎么替换字符串?

相似问题

用匹配项替换字符串中的项

32

用结果替换字符串中的匹配项

23

用列表中的项替换子字符串

30

用regex替换匹配中的子字符串

31

用图像元素替换匹配的子字符串

110
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档