为方括号 [ ] 编写正则表达式

问题描述 投票:0回答:2

如何编写一个正则表达式来查找内容可变长度的方括号?

balh blah [something.blah] blah [Ican.BeVariableInLength] blah blah

我应该在这里得到两场比赛。但是,如果我尝试使用一个转义方括号,我只会得到一个匹配项

/\[

regex
2个回答
0
投票

这个正则表达式:

含方括号:

\[[^\])]+\]

应该适用于任何正则表达式风格。

在线演示

不包含方括号

(?<=\[)[^\])]+(?=\])

不应该在某些正则表达式风格中工作,因为环顾四周高级正则表达式。

在线演示


-1
投票

这将取决于您使用的语言,但如果我们谈论纯正则表达式,您可以尝试这些:

/\[.+?]/gm
/\[(.+?)]/gm
(如果您想获取内容)。

演示:https://regex101.com/r/3kdXpk/1

上面的示例适用于 Perl 兼容的正则表达式 (PCRE)。实现它的方式将取决于您使用的语言,但重要的是您需要进行全局匹配(示例中的 /g),否则您只会得到一个结果。

JavaScript:

const str = 'balh blah [something.blah] blah [Ican.BeVariableInLength] blah blah';
const re = /\[(.+?)]/gm
const matches = [...re.exec(str).entries()]
console.log(matches)

PHP:

$str = 'balh blah [something.blah] blah [Ican.BeVariableInLength] blah blah';
$re = '/\[(.+?)]/m';
preg_match_all($re, $str, $matches);
var_dump($matches);
© www.soinside.com 2019 - 2024. All rights reserved.