这种正则表达式太难,还是要问前辈
http://topic.csdn.net/u/20100320/12/fb0c7ef2-e341-4394-a3ef-ff383ee8fa74.html
昨天问的,但是我想做到是
允许:
115h(1354(214g(fdsf)))
不允许(不允许并排):
115h(1354(214g(fdsf)214g(fdsf)))
且括号里不能为空。
谢谢!
http://topic.csdn.net/u/20100320/12/fb0c7ef2-e341-4394-a3ef-ff383ee8fa74.html
昨天问的,但是我想做到是
允许:
115h(1354(214g(fdsf)))
不允许(不允许并排):
115h(1354(214g(fdsf)214g(fdsf)))
且括号里不能为空。
谢谢!
Regex reg = new Regex(@"^[^()]+\((?>\((?!\))(?<o>)|\)(?![^()]*\()(?<-o>)|[^()]*)*(?(o)(?!))\)$");
foreach (string s in test)
{
if (reg.IsMatch(s))
{
richTextBox2.Text += "源字符串:" + s + " 合法!\n";
}
else
{
richTextBox2.Text += "源字符串:" + s + " 不合法!\n";
}
}
/*---------输出-------
源字符串:115h(1354(214g(dkfj(dkjf(xfds(dfs)))))) 合法!
源字符串:115h(1354(214g(fdsf)214g(fdsf))) 不合法!
源字符串:115h(1354(214g(fdsf))) 合法!
源字符串:115h(1354(214g())) 不合法!
*/
Regex reg = new Regex(@"^[^()]+\((?!\))(?>\((?!\))(?<o>)|\)(?![^()]*\()(?<-o>)|[^()]*)*(?(o)(?!))\)$");
foreach (string s in test)
{
if (reg.IsMatch(s))
{
richTextBox2.Text += "源字符串:" + s + " 合法!\n";
}
else
{
richTextBox2.Text += "源字符串:" + s + " 不合法!\n";
}
}
/*---------输出-------
源字符串:115h(1354(214g(dkfj(dkjf(xfds(dfs)))))) 合法!
源字符串:115h(1354(214g(fdsf)214g(fdsf))) 不合法!
源字符串:115h(1354(214g(fdsf))) 合法!
源字符串:115h(1354(214g())) 不合法!
源字符串:115h() 不合法!
*/