gpt4 book ai didi

javascript - 删除字符串末尾方括号之间的文本

转载 作者:行者123 更新时间:2023-11-30 09:33:52 27 4
gpt4 key购买 nike

我需要一个正则表达式来删除括号之间的最后一个表达式(也有括号)

来源:输入[某物][某物2]目标:输入[某物]

我试过这个,但它删除了所有两个:

"input[something][something2]".replace(/\[.*?\]/g, '');

最佳答案

请注意 \[.*?\]$ 不会工作,因为它将匹配 first [(因为正则表达式引擎从左到右处理字符串),然后将匹配字符串的所有其余部分,直到其末尾的 ] 。因此,它将匹配 input[something][something2] 中的 [something][something2]

您可以指定字符串 anchor 的结尾并使用 [^\][]*(匹配 [] 以外的零个或多个字符) 而不是 .*?:

\[[^\][]*]$

查看 JS 演示:

console.log(
"input[something][something2]".replace(/\[[^\][]*]$/, '')
);

详细信息:

  • \[ - 文字 [
  • [^\][]* - [] 以外的零个或多个字符
  • ] - 文字 ]
  • $ - 字符串结尾

另一种方法是在模式的开头使用 .* 来抓取整行,捕获它,然后让它回溯以获取最后的 [...]:

console.log(
"input[something][something2]".replace(/^(.*)\[.*]$/, '$1')
);

此处,$1 是对使用 (.*) 子模式捕获的值的反向引用。然而,它的工作方式有点不同,因为它将返回字符串中最后一个 [ 之前的所有内容,然后所有 [ 包括括号在内的内容都将被删除。

关于javascript - 删除字符串末尾方括号之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44718663/

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