gpt4 book ai didi

JavaScript 正则表达式替换字符串的所有部分,但包含特定字符串的部分除外

转载 作者:行者123 更新时间:2023-11-30 13:56:06 25 4
gpt4 key购买 nike

假设我有以下字符串 Hello World,我想用 x 替换其中不包含 o 或空格的每个部分。使用正则表达式,我可以简单地执行以下操作:

var myStr = "Hello World";
console.log(myStr.replace(/[^o ]/g, "x"));

现在,如果我想用 x 替换不包含字符串 ll 或空格的字符串的所有部分怎么办?我试过了,但没有成功:

// intended result: xxllx xxxxx
var myStr = "Hello World";
console.log(myStr.replace(/[^ll ]/g, "x"));

它似乎将 ll 解释为单独的字符而不是字符序列。我将如何使用正则表达式并使用 replace 方法来解决这个问题?

最佳答案

您可以使用这种使用环视的纯正则表达式解决方案:

var str = 'Hello World';

var re = /(?<!l)l(?!l)|[^l ]/g;

var repl = str.replace(re, 'x');

console.log(repl);
//=> xxllx xxxxx

正则表达式详细信息:

  • (?<!l)l(?!l) : 匹配 l如果它后面和前面没有另一个 l
  • | ;或者
  • [^l ] : 匹配任何不是 l 的字符而不是空格

Online RegEx Demo

关于JavaScript 正则表达式替换字符串的所有部分,但包含特定字符串的部分除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57278189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com