-1

我正在尝试使用正则表达式替换一些内容并且无法做到,请您看看..

我的输入:<Tag>E2iamjunkblabla</Tag> 预期输出:<Tag>E2done</Tag>

我正在尝试这个:

string input = "<Tag>E2iamjunkblabla</Tag>";
string output= System.Text.RegularExpressions.Regex.Replace(input, "<Tag>E2*</Tag>", "<Tag>E2done</Tag>");

我究竟做错了什么?还有什么方法可以在 E2 之后保留前 3 个字符(数字或字母)?我的意思是输出应该是

<Tag>E2iam</Tag>
4

1 回答 1

1

听起来你想要这个:

string input = "<Tag>E2iamjunkblabla</Tag>";

string output = System.Text.RegularExpressions.Regex.Replace(input, "<Tag>E2(...).*</Tag>", @"<Tag>E2$1done</Tag>");

分解它:

比赛:

匹配<Tag>然后匹配E2然后匹配任何字符 3 次(...)(括号意味着将该捕获存储在一个组中),然后匹配任何字符零次或多次,.*然后是文字</Tag>

替换:

然后将值替换<Tag>E2为捕获组 1 的值,$1然后是文字done</Tag>

如果您有问题,请告诉我 - 并阅读正则表达式!(哦,可能有很多方法可以做到这一点,这只是其中之一)

于 2013-10-15T16:04:15.037 回答