问问题
200 次
3 回答
2
为什么不在匹配模式中包含 t1?
string pattern = " from t1";
string answer=Regex.Relace(q , pattern , ",field3 from t1");
于 2012-08-10T19:49:01.407 回答
1
您正在尝试限制替换的数量,听起来,所以看起来这个问题已经在这里得到了回答:
[编辑:] 回复第一条评论:
抱歉,不知道 FROM 是一个示例还是您实际尝试做的事情。试图替换不基于可控字符串的东西是有问题的。如果您不控制所有输入的字符串,您可能还必须处理以下情况:
SELECT [From], [To], [Email], [Subject] FROM EmailsSent
最终结果是您的正则表达式将不得不前后查看以检查括号和括号,因为您不能 100% 控制它给出的字符串。我要提醒您,您正在做的事情听起来像是一种不好的做法,只有在没有其他选择的情况下才应该这样做。看一下前瞻/后向信息,您应该可以在 google 上搜索更多信息:
http://openmymind.net/2011/2/16/Regex-Positive-Negative-Look-Ahead-Behind/
于 2012-08-10T19:51:07.387 回答
0
string q = "select field1,field2 from t1 where field1 in (select field1 from t2 where t2.field2>5)";
Regex r=new Regex(@"from.*$");
string s=r.Replace(q,",field3 $0");//output
于 2012-08-11T03:30:37.423 回答