使用通配符的正则表达式

时间:2013-10-15 15:49:49

标签: c# .net regex

我正在尝试使用正则表达式替换某些内容但无法执行此操作,请您查看..

我的输入:<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个字符(数字或alphbets)? 我的意思是输出应该是

<Tag>E2iam</Tag>

1 个答案:

答案 0 :(得分:1)

听起来你想要这个:

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

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

要打破它:

比赛:

匹配<Tag>然后匹配E2然后匹配任何字符3次(...)(括号表示将该捕获存储在一个组中),然后匹配任何字符零次或多次{{ 1}}后跟文字.*

替换:

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

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