我正在尝试使用正则表达式替换某些内容但无法执行此操作,请您查看..
我的输入:<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>
答案 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
如果您有问题,请告诉我 - 并阅读正则表达式! (哦,可能有很多方法可以做到这一点,这只是其中之一)