gpt4 book ai didi

Javascript正则表达式获取子字符串,排除模式?

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

我还是个初学者:)

我需要获取一个子字符串,忽略 [] 内的最后一部分(包括括号 []),即忽略最后的 [something inside] 部分。

注意 - 字符串中可能还会出现其他单个 [ 。它们应该出现在结果中。

示例

输入表单 -

1 checked arranged [1678]

所需的输出 -

1 checked arranged

我尝试过这个

var item = "1 checked arranged [1678]";

var parsed = item.match(/([a-zA-Z0-9\s]+)([(\[d+\])]+)$/);
|<-section 1 ->|<-section 2->|

alert(parsed);

我试图表达以下意思 -

第 1 部分 - 多次出现单词(包含文字和编号),后跟空格

第 2 部分 - 最后忽略模式 [something]。

但我收到 1678],1678,],但我不确定它会朝哪个方向发展。

谢谢

最佳答案

好吧,这就是你的表达式的问题

([a-zA-Z0-9\s]+)([(\[d+\])]+)$

问题仅在最后一部分

([(\[d+\])]+)$
^ ^
here are you creating a character class,
what you don't want because everything inside will be matched literally.

((\[d+\])+)$
^ ^^
here you create a capturing group and repeat this at least once ==> not needed

(\[d+\])$
^
here you want to match digits but forgot to escape

这让我们想到

([a-zA-Z0-9\s]+)(\[\d+\])$

查看here on Regexr ,匹配完整的字符串,捕获组 1 中的节 1 和组 2 中的节 2。

当您现在将整个内容替换为第 1 组的内容时,您就完成了。

关于Javascript正则表达式获取子字符串,排除模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6926994/

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