gpt4 book ai didi

Java 正则表达式 : Matching a string with multiple sets of brackets

转载 作者:行者123 更新时间:2023-12-02 11:29:03 25 4
gpt4 key购买 nike

我试图弄清楚如何编写一个正则表达式来匹配 4 组包含任意数量非括号字符的括号。

例如,这些应该匹配。

[hello][world][foo][bar]
[][][][]

这些不应该:

[a][b][c]
[a][b][c][d]e
[[a]][b][c][d]

如果我没记错的话,这(下面)似乎匹配一组括号和其中的字符。

\\[[^\\[\\]]*\\]

我认为可以通过执行以下操作将其扩展到 4 组,但它不起作用。

[\\[[^\\[\\]]*\\]]{4}

我在这里缺少什么?预先感谢您的任何帮助。我很感激。

最佳答案

试试这个:

Pattern p = Pattern.compile("^(\\[[^\\[\\]]*\\]){4}$");

为您分解一下:

"^(\\[[^\\[\\]]*\\]){4}$"
││├─┘├───────┘│├─┘ │ └─ the end of the line.
│││ │ ││ └─ repeat the capturing group four times.
│││ │ │└─ a literal "]"
│││ │ └─ the previous character class zero or more times.
│││ └─ a character class containing anything but the literals "[" and "]"
││└─ a literal "[".
│└─ start a capturing group.
└─ the beginning of the string.

关于Java 正则表达式 : Matching a string with multiple sets of brackets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132063/

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