求正则表达式
@str1 = SELECT(intpr1,userinfo,strpr1=str1)
用
Match m = Regex.Match(sourceStr, @ "(\s*)@(\S*?)[^=]=[^=](.*?) ");
匹配
需要得到的字符串分别为
group[1]= " "
group[2]= "str1 "
group[3]= " SELECT(intpr1,userinfo,strpr1=str1) "
但上面的正则表达式的错误结果是
group[1]= " "
group[2]= "str1 "
group[3]= " "
求正解
------解决方案--------------------
按我的理解楼主的group[1]= " "应该是@str1前面有空格是吧
而你要得到的结果
group[2]= "str1 "
group[3]= " SELECT(intpr1,userinfo,strpr1=str1) "
里还保留了空格是吧,按你写的Group,可以用下面的正则
Match m = Regex.Match(yourStr, @ "(\s*)@(.*?)=(.*) ");
m.Groups[1].Value; // " "
m.Groups[2].Value; // "str1 "
m.Groups[3].Value; // " SELECT(intpr1,userinfo,strpr1=str1) "
楼主的正则把最后的“?”去掉,也可以得到相应的结果,但是[^=]是要匹配一个字符的,如果=与其它字符串之间没有空格,楼主的表达式得到的结果仍然是错的,所以不推荐那样写