咨询一个获取括号内值的正则表达式写法
刚接触正则表达式不久,还没掌握的很熟。有个小问题比较困扰。
我有这样的一个句子:阿[打[答案1]阿大[答案2]法所]得[答案 3.]送颠[覆。
希望能把其中配对的括号内的值都去出来,例如上面这一句希望能获得的是:
1.答案1
2.答案2
3.答案 3.
我本来是这么写的,string patern = @ "\[(? <item> [\S+\s]{0,})\] ";
结果只匹配出来一个:打[答案1]阿大[答案2]法所]得[答案 3.
请问为什么]是从右侧开始找的?如果想达到要求的话,应该如何来写?
------解决方案--------------------\[[^\[\]]*\]
------解决方案--------------------@ "\[[^\[\]]*\] " 不知道可以不可以,你可以测试一下。如果不行就等过客来。呵呵~~~
------解决方案--------------------try
string yourStr = ...................;
MatchCollection mc = Regex.Matches(yourStr, @ "\[(? <item> [^\[\]]*)\] ");
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups[ "item "].Value + "\n ";
}