如何替换某些字符后的单词并使用REGEX提取休息

时间:2014-10-14 13:43:58

标签: c# regex

假设我有以下句子

select PathSquares from tblPathFinding where RouteId=470 
and StartingSquareId=267 and ExitSquareId=13

现在我想替换=后面的单词并获取句子的其余部分

假设我想用=

替换%的后续字词

单词用空格分隔

所以这句话会变成

select PathSquares from tblPathFinding where RouteId=%
and StartingSquareId=% and ExitSquareId=%

我可以用哪个正则表达式来实现这个目标?

.net 4.5 C#

1 个答案:

答案 0 :(得分:1)

使用lookbehind匹配=符号后面的所有非空格或单词字符。用% wiil替换匹配的字符可以得到所需的输出。

@"(?<==)\S+"

OR

@"(?<==)\w+"

替换字符串:

%

DEMO

string str = @"select PathSquares from tblPathFinding where RouteId=470 
and StartingSquareId=267 and ExitSquareId=13";
string result = Regex.Replace(str, @"(?<==)\S+", "%");
Console.WriteLine(result);

IDEONE

<强>解释

  • (?<==)断言匹配必须以=符号开头。
  • \w+如果是,则匹配以下一个或多个单词字符。