如何替换单词以某些字符开头,以某些字符结束

时间:2014-10-19 01:09:28

标签: c# regex

假设我有以下行

update tblBattleInfo set BattleResultUser_1=@ResultUser_1+BattleResultUser_1,BattleResultUser_2=@ResultUser_2+BattleResultUser_2 where BattleInfoId=@BattleInfoId

我想要的是我想要替换以@字符开头的所有单词,并以(a,z,A,Z,0-9)以外的任何字符结尾,例如那些字符就是这样的as:'+','-','=','\r','\n','(',' '

作为我想要的替代品' 55'待用

基本上,我将解析SQL查询以在数据库调优顾问程序中进行分析

我怎样才能实现它?

所以上面的句子会变成

update tblBattleInfo set BattleResultUser_1='55'+BattleResultUser_1,BattleResultUser_2='55'+BattleResultUser_2 where BattleInfoId='55'

c#.net 4.5 regex wpf

我想使用正则表达式来完成这项工作,因为我认为这将是最佳选择

2 个答案:

答案 0 :(得分:1)

试试这个:

s/@([A-Za-z0-9_]*)/'55'/

答案 1 :(得分:1)

您可以使用以下正则表达式...

String s = "update tblBattleInfo set BattleResultUser_1=@ResultUser_1+BattleResultUser_1,BattleResultUser_2=@ResultUser_2+BattleResultUser_2 where BattleInfoId=@BattleInfoId";
String r = Regex.Replace(s, @"@\w+", "'55'");
Console.WriteLine(r);
//=> "update tblBattleInfo set BattleResultUser_1='55'+BattleResultUser_1,BattleResultUser_2='55'+BattleResultUser_2 where BattleInfoId='55'"