gpt4 book ai didi

javascript - 如何替换给定字符串前后除 100 个字符以外的所有内容?

转载 作者:行者123 更新时间:2023-11-29 10:27:03 26 4
gpt4 key购买 nike

我正在尝试过滤一组数据,我必须处理 ~5000 字符的多个条目。

我需要的是一些关键字前后的100个字符。

我查看了用于搜索和替换的正则表达式代码,但只找到了获取一个 keyword 的函数,而不是周围的字符。

示例输入:

abc123cde345fgh678ijk910keywordbc123cde345fgh678ijk910

+-5 个字符的期望输出:

jk910keywordbc123

最佳答案

匹配 100 个字符,后跟关键字,然后再匹配 100 个字符:

const str = 'abc123cde345fgh678ijk910keywordbc123cde345fgh678ijk910';
const match = str.match(/.{5}keyword.{5}/);
console.log(match[0]);

如果需要动态构建模式,那么:

const str = 'abc123cde345fgh678ijk910keywordbc123cde345fgh678ijk910';
const keyword = 'keyword';
const pattern = new RegExp(`.{5}${keyword}.{5}`);
const match = str.match(pattern);
console.log(match[0]);

如果模式可能包含在正则表达式中具有特殊含义的字符,如 $,则确保在传递给 new RegExp 之前先将它们转义:

// https://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
const escape = s => s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');

const str = 'abc123cde345fgh678ijk910keyw$ordbc123cde345fgh678ijk910';
const keyword = 'keyw$ord';
const pattern = new RegExp(`.{5}${escape(keyword)}.{5}`);
const match = str.match(pattern);
console.log(match[0]);

关于javascript - 如何替换给定字符串前后除 100 个字符以外的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56419464/

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