正则 a = (?<1>[^\s]*?)\s*and\s*b = (?<2>[^\s]*?)\s*or\s*c = (?<3>[^\s]*?)
@aa,@bb,@cc 是否等长,规律就好办 先判断位置indexof,再截取substring
trystring yourStr = richTextBox1.Text; MatchCollection mc = Regex.Matches(yourStr, @"@\S+"); foreach (Match m in mc) { richTextBox2.Text += m.Value + "\n"; }
string s = "where a = @aa and b =@bbbb or c=@ccccccc"; Regex reg = new Regex(@"\@\w*"); foreach (Match m in reg.Matches(s)) { s = m.Value; MessageBox.Show(s); }
a = (?<1>[^\s]*?)\s*and\s*b = (?<2>[^\s]*?)\s*or\s*c = (?<3>[^\s]*?)
先判断位置indexof,再截取substring
MatchCollection mc = Regex.Matches(yourStr, @"@\S+");
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}
Regex reg = new Regex(@"\@\w*");
foreach (Match m in reg.Matches(s))
{
s = m.Value;
MessageBox.Show(s);
}
我那样的表达式LZ就不要用了.