gpt4 book ai didi

javascript - 捕获方括号之间开始和结束空格的正则表达式

转载 作者:行者123 更新时间:2023-11-30 11:19:29 29 4
gpt4 key购买 nike

我需要一个在 javascript 中的正则表达式,当字符串是这样的情况下会失败:

foo[ bar]
foo[bar ]
foo[ bar ]

foo可以是任何单词(也可以包含特殊字符如 -. ),同样适用于 bar .

如果字符串只是:它不应该失败:

[ bar]
[bar ]
[ bar ]

如果字符串是:

foo[bar]

一些背景信息。我正在编写一个自定义的 linter 规则,如果引用的数组在括号中有不需要的空格,该规则将失败。非常感谢任何帮助。

这是我目前所拥有的(Regex101):

\[([^\]]+)\]

但这会考虑整个括号并且不会评估开头(应该在前面)。此外,它应该只评估空格的存在。

最佳答案

您似乎只想匹配以下字符串:1) 在 () 之前有 1 个或多个单词字符,并且 2) 在 [ 之后或 之前有空格]

你可以使用

/\w+\[(\s[^\]]*|[^\]]*\s)]/

参见 regex demo .

详情

  • \w+ - 1 个或多个单词字符
  • \[ - 一个 [
  • (\s[^\]]*|[^\]]*\s) - 两种选择之一:
    • \s[^\]]* - 一个空白字符后跟 0+ 个字符,]
    • | - 或者
    • [^\]]*\s - ] 以外的 0+ 个字符后跟一个空白字符
  • ] - ] 字符。

JS 演示:

var rx = /\w+\[(\s[^\]]*|[^\]]*\s)]/;
var strs = [ "foo[ bar]", "foo[bar ]", "foo[ bar ]", "[ bar]", "[bar ]", "[ bar ]"];
for (var s of strs) {
console.log(s, "=>", rx.test(s));
}

关于javascript - 捕获方括号之间开始和结束空格的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50347452/

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