如何检查嵌套的方括号?

How to check for nested square brackets?

我有以下输入字符串:

[text1][text2][text3]...[textN]

并且我想使用正则表达式应用以下验证规则:

The ] and [ cannot be included in other [].

例如,接下来输入的字符串不正确:

[test1][test2[][test3]
[test1][test2]][test3] 
[test1][test2[lol][test3]
[test1][test2]lol][test3] 

我需要验证输入字符串,因为我要将它分成 [] 组(再次使用正则表达式)。

这应该可以解决问题:

^(\[\w*\])*$

意思是

  • ^ 从
  • 开始
  • [一个[
  • \w* 多个单词字符(\w 匹配 [A-Za-z0-9_]
  • ]一个]
  • * 多次
  • $ 字符串结尾

如果你真的想要一个正则表达式,这里是一个快速的:

^(\[[^\[\]]+\])*$

处理您的示例

此处的原则是每个括号对 (\[.*\])* 包含任何不包含括号 [^\[\]]+

的文本

如果您需要 [test1][test2][][test3] 工作,请将 + 更改为 * 以允许空字符串匹配