正则表达式匹配[和]之间的任何字符串
问题描述:
我想匹配[和]之间的任何字符串。下面的代码工作正常,但我想输出与出这个符号[]正则表达式匹配[和]之间的任何字符串
我的代码:
string strValue = "{test}dfdgf[sms]";// i want to sms
private void Form1_Load(object sender, EventArgs e)
{
Match mtch = Regex.Match(strValue, @"\[((\s*?.*?)*?)\]");
if (mtch.Success)
{
MessageBox.Show(mtch.Value);
}
}
答
你会想要使用Match.Groups属性。既然你已经使用了括号,你可以得到你想要的组
MessageBox.Show(mtch.Groups[1].Value);
组[0]将包含与[和]整个字符串。
另外,我觉得你的正则表达式可以简化
\[((\s*?.*?)*?)\]
应相当于
\[(.*?)\]
至今。*将匹配任何东西,包括白色的空间,这是什么\ S封面。
答
尝试
MessageBox.Show(mtch.Groups[1].Value);
这给了你第一个捕获组的值 - 内容的外部parantheses。
+0
谢谢你工作正常 – anbuselvan 2010-09-04 12:39:32
谢谢你谢谢你工作正常 – anbuselvan 2010-09-04 12:48:35