首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

正则表达式的,请大家来聊聊解决方案

2012-02-01 
正则表达式的,请大家来聊聊如下:上海[1,3],北京[2,4,5],山东就上次用一个字符中,要找到的是[1,3][2,4,5]这

正则表达式的,请大家来聊聊
如下:
上海[1,3],北京[   2,4,5],山东


就上次用一个字符中,要找到的是  
[1,3]
[   2,4,5]

这两个,条件就是   有[]而[]里又要含有数字的,(只要是数字就可以了,不理是多少)
谢谢

[解决办法]
string str = @ "上海[1,3],北京[ 2,4,5],山东 ";
string pattern = @ "\[\s*\d(?:,\s*\d)*\] ";
Regex regex = new Regex(pattern);
MatchCollection mc = regex.Matches(str);
foreach (Match m in mc)
Console.WriteLine(m.Value);
[解决办法]
试下

string yourStr = richTextBox1.Text;
MatchCollection mc = Regex.Matches(yourStr, @ "\[(\s*\d,?)*?\] ");
foreach (Match m in mc)
{
   richTextBox2.Text += m.Value + "\n ";  //提取内容
}
[解决办法]
yufenfeila没有考虑[ 13 , 4 , 5 ]和[11,3]的情况

string str = @ "上海[11,3],北京[ 2,4,5],山东[1],天津[ 13 , 4 , 5 ] [] ";
string pattern = @ "\[\s*\d(\s*,\s*\d\s*)*\] ";
Regex regex = new Regex(pattern);
MatchCollection mc = regex.Matches(str);
foreach (Match m in mc)
Console.WriteLine(m.Value);

[解决办法]
确实少考虑了一些情况,严谨点的

string yourStr = richTextBox1.Text;
MatchCollection mc = Regex.Matches(yourStr, @ "\[(\s*\d+\s*,?)+?\] ");
foreach (Match m in mc)
{
   richTextBox2.Text += m.Value + "\n ";  //提取内容
}

热点排行