如何编写一个正则表达式来查找内容可变长度的方括号?
balh blah [something.blah] blah [Ican.BeVariableInLength] blah blah
我应该在这里得到两场比赛。但是,如果我尝试使用一个转义方括号,我只会得到一个匹配项
/\[
这将取决于您使用的语言,但如果我们谈论纯正则表达式,您可以尝试这些:
/\[.+?]/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);