gpt4 book ai didi

javascript - 如何从JavaScript中的字符串中提取方括号中的文本?

转载 作者:行者123 更新时间:2023-11-27 22:34:57 26 4
gpt4 key购买 nike

如何从字符串 "[a][b][c][d][e]" 中提取所有方括号对之间的文本,这样我就可以得到以下结果:

数组:["a", "b", "c", "d", "e"]

字符串:"abcde"

我尝试过以下 Regular Expressions ,但无济于事:

→ <强> (?<=\[)(.*?)(?=\])

→ <强> \[(.*?)\]

最佳答案

研究:

在 Stack Overflow 中搜索后,我只找到了两个解决方案,它们都使用 Regular Expressions 可以找到它们 here :

→ <强> (?<=\[)(.*?)(?=\]) (1)

  1. (?<=\[) :积极的后向回顾。
  2. \[ :匹配字符 [ 字面意思。
  3. (.*?) :匹配除换行符之外的任何字符,并根据需要扩展。
  4. (?=\]) :积极的前瞻。
  5. \] :匹配字符 ] 从字面上看。

→ <强> \[(.*?)\] (2)

  1. \[ :匹配字符 [ 字面意思。
  2. (.*?) :匹配除换行符之外的任何字符,并根据需要扩展。
  3. \] :匹配字符 ] 字面意思。
<小时/>

注释:

(1) 此模式会在 JavaScript 中引发错误,因为不支持lookbehind 运算符。

示例:

console.log(/(?<=\[)(.*?)(?=\])/.exec("[a][b][c][d][e]"));

Uncaught SyntaxError: Invalid regular expression: /(?<=\[)(.*?)(?=\])/: Invalid group(…)


(2) 此模式仅返回第一对方括号内的文本作为第二个元素。

示例:

console.log(/\[(.*?)\]/.exec("[a][b][c][d][e]"));

Returns: ["[a]", "a"]
<小时/>

解决方案:

最精确的解决方案JavaScript 我想出的是:

var string, array;

string = "[a][b][c][d][e]";
array = string.split("["); // → ["", "a]", "b]", "c]", "d]", "e]"]
string = array1.join(""); // → "a]b]c]d]e]"
array = string.split("]"); // → ["a", "b", "c", "d", "e", ""]

现在,根据我们希望最终结果是数组还是字符串,我们可以这样做:

array = array.slice(0, array.length - 1)     // → ["a", "b", "c", "d", "e"]
/* OR */
string = array.join("") // → "abcde"
<小时/>

单行:

最后,对于像我这样喜欢用最少的代码或我们的 TL;DR 实现最多目标的人来说,这里有一个针对每种情况的方便的衬里。 伙计们。

数组:

var a = "[a][b][c][d][e]".split("[").join("").split("]").slice(0,-1);
/* OR */
var a = "[a][b][c][d][e]".slice(1,-1).split(']['); // Thanks @xorspark

字符串:

var a = "[a][b][c][d][e]".split("[").join("").split("]").join("");

关于javascript - 如何从JavaScript中的字符串中提取方括号中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39197051/

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