带通配符的正则表达式
本文关键字:正则表达式 通配符 带通 | 更新日期: 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>
如果您有问题,请告诉我 - 并阅读正则表达式!(哦,可能有很多方法可以做到这一点,这只是其中之一)