初学正则表达式,请教一个正则表达式的问题!
给定一个字符串第一种情况:如...where ID=1 and Name1='liwu' and Name2='liwu' ...
也有可能字符串变成 第二种情况:...where Name1='liwu' and ID=1 and Name2='liwu' ...
给关键字'liwu'
如何匹配出Name1='liwu' 和Name2='liwu' 这段,关键是where 或and 都可以在 为匹配结果前的标志,如何写,表达得不好~_~
我试写了一下((where)|(and))+ 在第一种情况的字符串中都匹配到where ID=1 and Name1='liwu' 我而想要的是and Name1='liwu' 再删除and
问题点数:50、回复次数:5Top
1 楼hefaxian(心碎无痕)回复于 2004-12-01 20:16:05 得分 0
没有人回答吗?郁闷~~Top
2 楼hefaxian(心碎无痕)回复于 2004-12-02 08:32:44 得分 0
晕倒居然没有人回答.好像没有人知道~~Top
3 楼rickey(链栈)回复于 2004-12-02 11:45:05 得分 10
upTop
4 楼OneDotRed(武装到眼神)回复于 2004-12-02 12:12:18 得分 40
string pattern = @"(where|and).*?\s+(?<Equation>[^=\s]+\s*=\s*'liwu')(\s+|$)";
Regex r = new Regex( pattern , RegexOptioins.IgnoreCase );
Match m = r.Match( yourString );
while ( m.Success )
{
string equation = m.Groups[ "Equation" ].Value;
m = m.NextMatch();
}Top
5 楼hefaxian(心碎无痕)回复于 2004-12-06 08:56:14 得分 0
看样子可以,试下先Top




