如何用静态字符串替换以-ing结尾的单词

时间:2015-06-12 20:29:33

标签: c# regex

在我的下面的代码块中,我很想用静态文本替换以-ing结尾的单词" ------"。然而,这似乎无法工作和抛出 - 到处都是。我做错了什么?

string ingString = "I like programming, running, jobs and swimming.";
string ingWords = @"[^\\b\\w+(ing\\b)$]";
string staticLine = "------";
replaceString = Regex.Replace(ingString, ingWords, staticLine);

应该阅读"我喜欢------,------,工作和------。"

由于

2 个答案:

答案 0 :(得分:2)

你的正则表达式是不对的。试试这个:\w*ing\b

取自另一个question但经过修改以满足您的需要。

答案 1 :(得分:2)

这样做:

string ingString = "I like programming, running, jobs and swimming.";
string ingWords = @"\w+ing\b";
string staticLine = "------";
Console.WriteLine(Regex.Replace(ingString, ingWords, staticLine));

输出:

I like ------, ------, jobs and ------.

现在回答你的问题:

  

我做错了什么?

你的正则表达式:

[^\\b\\w+(ing\\b)$]

当您使用括号[...]时,它代表一组字符,因此引擎正在尝试匹配您集合中的所有字符,这就是为什么它用-----

替换了很多字符