我需要找到一个用于C#(也是JavaScript)的正则表达式,以获取方括号组合内的文本。
我尝试了几种方法,但是我放弃了,总是我的组合有一些错误,有人可以帮我吗?
[text]
[[text]]
[[[tex]]]]]]]]]]]]]
等...
答案 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)