我是正则表达式的新手,正在尝试为下面的字符串编写正则表达式。
[1] [2] [3] [] [5[any]] my text
我想要类似的东西
1
2
3
5[any]
my text
我已经尝试过
/\[(.*?)\]/g
,但它不适用于内括号和括号外的最后一个单词
尝试:
((?<=\[)(?:[^\[\]]|\[[^\[\]]+\])*(?=\])|(?<=\s)[\w\h]+$)
参见:regex101
说明
( ... )
:将结果捕获到组 1:
(?<=\[) ... (?=\])
:在括号之间:(?: ... )*
:匹配0次或多次:
[^\[\]]
:非括号|
:或
\[ ... \]
:括号中带有[^\[\]]+
:中间无括号|
:或末尾的话:
(?<=\s)
:检查前面是否有空格[\w\h]+
:匹配单词字符和水平空格