带通配符的正则表达式

本文关键字:正则表达式 通配符 带通 | 更新日期: 2023-09-27 18:35:22

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

我的输入: <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>");

我做错了什么?还有没有办法在 E3 之后保留前 2 个字符(数字或阿尔菲贝特)?我的意思是输出应该是

<Tag>E2iam</Tag>

带通配符的正则表达式

听起来你想要这个:

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>

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