当前位置: 首页 > 知识库问答 >
问题:

替换多个regex模式,直到最后不进行消化[重复]

易骁
2023-03-14

我有字符串“stackoverflow”和一组regex规则:

  1. “A”变为“E”
  2. “e”变为“1”
  3. ...

如何替换多个regex匹配,而不在最后消化结果,以便最终结果为“steckov1rflow”

共有1个答案

东门新立
2023-03-14

对于使用多个replace没有什么好的方法,但是一个选择是只使用一个与任何原始模式匹配的组合模式进行一次替换,然后决定在替换函数中使用哪个替换。

const map = new Map([
    ['a', 'e'],
    ['e', '1'],
]);

console.log("StackOverflow".replace(/[ae]/g, match => map.get(match)));
 类似资料:
  • 我试图制作一个模糊的自动完成建议框,突出显示带有HTML标记的搜索字符 例如,如果用户输入“ldi”,其中一个建议是“莱昂纳多·迪卡普里奥”,则期望的结果是“莱昂纳多·迪卡普里奥”。每个字符的第一次出现将按外观顺序高亮显示。 我现在正在做的是: 导致 现在我想用

  • 如何一次执行所有的< code>str.replace?

  • null 但问题是我的regex不是。

  • 基于SO上的各种线程(例如。用模式替换if else语句)我知道我可以用< code>Command模式替换多个if\else语句。 我的情况有点不一样。 我有一系列,只有当前一个命令不成功时,我才需要执行每个。 例如,假设我需要从一个假设的网页中检索文本——我可以使用屏幕抓取直接从页面中抓取文本,也可以从API中获取文本。如果屏幕抓取不成功,我只想从API获取文本。换句话说,如果“scrap”命

  • 我正在寻求帮助,我正在制定的代码,我希望它取代最后两个字母。我正在编写一个程序,它将: 将四个字母的单词替换为“FRED” 将以“ed”结尾的单词的最后两个字母替换为“id” 最后,如果单词以“di”开头,请将前两个字母替换为“id” 我对第二条规则有困难,我知道对于数字3,我可以使用replaceFirst();并使用长度作为第一条规则,但我不确定如何具体交换字符串中的最后两个字符。 以下是我目

  • 假设我有'abbc'字符串,我想替换: ab- 如果我尝试两次替换,结果不是我想要的: 那么我可以使用什么sed命令来替换下面的命令呢? 编辑:实际上文本可能有2个以上的模式,我不知道我需要多少替换。因为有人回答说,是一个流编辑器,它的替代品是贪婪的,我想我需要使用一些脚本语言来实现这一点。