假设我有以下代码:
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
但我从中得不到多少,而且我不确定它到底是我想要的。
有什么办法吗?
答案 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-Z
,a-z
,还匹配其他一些额外字符。
或
string pattern = "(?<=h.llo )[A-Za-z]+";
string output = Regex.Replace(input,pattern,"world");
(?<=h.llo )
积极的lookbehind asserion断言匹配必须以h
,any char
,llo
,空格开头。断言不会匹配任何单个字符,但断言是否可以匹配。