gpt4 book ai didi

Javascript 正则表达式替换并添加找到的所有元素到数组

转载 作者:行者123 更新时间:2023-11-30 16:39:53 25 4
gpt4 key购买 nike

目前我很迷茫!我一直试图解决这个问题,但似乎无法破解。我什至无法在 Google 上找到答案。

目前我正在使用我用 Javascript 编写的正则表达式:

((?: {4,}|\t+)(?:.*))

简单地说,它匹配文本区域中超过 4 个空格或超过 1 个制表符的所有内容。是的,你说这听起来很熟悉?这就是 Stack Overflow 为代码块所做的事情。现在,我遇到了一个问题。

基本上我想替换在文本区域中找到的所有这些实例,但首先我想将它们备份到一个数组中。现在,我不确定如何获取找到的每个匹配项并将其插入到数组中。

这是我目前所拥有的:

.replace(/((?: {4,}|\t+)(?:.*))/gi, function (m, g1, g2) {
return //STUCK HERE
}); //Matches Bold

很简单,我只想获取在文本区域(缩进或 4 个空格)中找到的所有匹配项,然后我想将匹配项的内容添加到数组中。我该怎么做呢?请帮忙!

最佳答案

你可以用一颗子弹击中两个目标:

var items = [];
var re = /((?: {4,}|\t+)(?:.*))/g;
textarea.value = textarea.value.replace(re, function ($0, $1) {
items.push($1);
return 'replacement';
});

如果你想得到当时的代码块:

var codeLines = [];
var reMarkers = /\{\{(.*?)\}\}/g;
var reCodeBlocks = /((?: {4,}|\t+)(?:.*))/g;
var text = textarea.value;

// save and remove code blocks
text = text.replace(reCodeBlocks, function ($0, $1) {
var marker = '{{' + codeLines.length + '}}';
codeLines.push($1);
return marker;
});

// revert to previous state
text = text.replace(reMarkers, function ($0, $1) {
return codeLines[parseInt($1, 10)];
});

关于Javascript 正则表达式替换并添加找到的所有元素到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32158041/

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