只有在使用PCRE引擎有一对方括号时才匹配。尝试过.+\[[^\[\]]*\]
,但仍然与array[[]
匹配。
更好地理解的例子:
好
array[]
array[1]
array[associative]
Bad
array[[]
array[]]
array[[]]
array[[1]
array[onther array[1]]
发布于 2020-02-04 04:23:15
如果希望.
与[
或]
不匹配,则不能使用它。
你到底想要什么还不清楚,但你的问题的字面答案是
\[[^][]*\]
它匹配文字开头的方括号\[
,匹配任何非]
或[
字符的字符类,重复0次或多次,以及文字结束方括号\]
。
字符类[^][]
看起来有点令人难以置信,直到您意识到,在否定字符类中的字符枚举中,]
必须位于[
之前。
一些regex工具也允许字符类中的\]
,但这不是通用的或可移植的。在另一些情况下,它意味着文字反斜杠和字符类的结尾。
发布于 2020-02-04 04:44:13
匹配只有一对[...]
使用的字符串的正则表达式
^[^][]*\[[^][]*][^][]*$
详细信息
^
-字符串的开始[^][]*
- 0+字符( [
和]
除外)\[
- [
[^][]*
- 0+字符( [
和]
除外)]
-a ]
char[^][]*
- 0+字符( [
和]
除外)$
-字符串的末端。https://stackoverflow.com/questions/60057345
复制