正则表达式 - 捕获具有特定字符的组

时间:2017-10-31 00:30:30

标签: regex regex-group

我有以下字符串

[ string1] [ string2.0 \ string2.1 ] [ string3] 

我希望捕获内容"string2.0 \ string2.1",这可能位于字符串中的任何位置,基本上我想捕获内部的组" []"并有一个" \"。

我有这个正则表达式 - (\[.*?\\.*?\])但这会抓住前两个组,因为我只需要来自第二组的字符串。此外,第二组可以在任何地方出现,例如

[ string2.0 \ string2.1 ] [ string1] [ string3]
[ string1] [ string3] [ string2.0 \ string2.1 ]

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

诀窍是用排除方括号的表达式替换第一个.*?

\[([^[]*\\.*?)]

现在捕获不能包含一个空方括号,因此只能抓取一个组。

Demo.