只替换c#

时间:2015-08-02 09:03:42

标签: c# regex

假设我有以下代码:

string input = "hello everyone, hullo anything";
string pattern = "h.llo [A-z]+";
string output = Regex.Replace(input,pattern,"world");

(我试图让它变得尽可能简单)

以上代码输出为"world, world",而我真正想要的是一种方法,可以将h.llo之后的所有字词更改为world,并且我希望输出为"hello world, hullo world"

我正在寻找一种方法来做这件事我搜索了很多并阅读了这篇文章:

Replace only some groups with Regex

但我从中得不到多少,而且我不确定它到底是我想要的。

有什么办法吗?

1 个答案:

答案 0 :(得分:2)

将您的代码更改为

string input = "hello everyone, hullo anything";
string pattern = "(h.llo )[A-Za-z]+";
string output = Regex.Replace(input,pattern,"$1world");

[A-z]不仅匹配A-Za-z,还匹配其他一些额外字符。

string pattern = "(?<=h.llo )[A-Za-z]+";
string output = Regex.Replace(input,pattern,"world");

(?<=h.llo )积极的lookbehind asserion断言匹配必须以hany charllo,空格开头。断言不会匹配任何单个字符,但断言是否可以匹配。

DEMO