正则表达式来获取方括号之间的文本,包括差异?

时间:2014-06-10 11:50:19

标签: c# javascript regex

我需要找到一个用于C#(也是JavaScript)的正则表达式,以获取方括号组合内的文本。

我尝试了几种方法,但是我放弃了,总是我的组合有一些错误,有人可以帮我吗?

[text]

[[text]]

[[[tex]]]]]]]]]]]]]

等...

4 个答案:

答案 0 :(得分:3)

这匹配方括号以外的所有内容:[^\[\]]+

这可以捕获任意数量的开放(LHS)和关闭(RHS)方括号之间的任何方括号:

\[+([^\[\]]+)\]+

Javascript中的用法示例:

'[[[[[test]]]]'.match(/\[+([^\[\]]+)\]+/)
> ["[[[[[test]]]]", "test"]

http://regexpal.com/上的正则表达式测试程序对于尝试使用正则表达式非常有用。

答案 1 :(得分:2)

如果您更喜欢使用正则表达式,以下内容将起作用。

\[([^[\]]+)\]

请参阅Live Demo

考虑替换这些字符而不是尝试在它们之间进行匹配。

String input  = @"[[[text]]]]]]]]]]]]]";
String output = Regex.Replace(input, @"[[\]]", "");
Console.WriteLine(output); //=> "text"

答案 2 :(得分:1)

试试这个

这匹配除方括号之外的所有内容:

\[([^\[\]]+)\]

<强>输出

文本

文本

答案 3 :(得分:0)

这将排除方括号:

((?!\[)(?!\]).)+

Demo

Explanation