首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >String.replace添加额外字符

String.replace添加额外字符
EN

Stack Overflow用户
提问于 2014-11-27 11:28:03
回答 2查看 470关注 0票数 0

我试图在Outlook中替换一些邮件中的单词。这是我的代码

代码语言:javascript
复制
        Dim input As String = mail.HTMLBody
        Dim pattern As String = "QWQ[a-z][a-z][0-9][0-9][0-9][0-9][0-9]"
        Dim replacement As String
        Dim rgx As New Regex(pattern)

        Dim match As Match = Regex.Match(input, pattern)
        While (match.Success)
            replacement = "A" + match.Value + "A"
            input = input.Replace(match.value, replacement)
            match = match.NextMatch()
        End While
        mail.HTMLBody = input

用于此输入

代码语言:javascript
复制
QWQrt12345
QWQrt1234533

wwQWQrt12345
QWQrt1234534

qwwQWQrt12345

我期望输出

代码语言:javascript
复制
AQWQrt12345A
AQWQrt12345A33

wwAQWQrt12345A
AQWQrt12345A34

qwwAQWQrt12345A

但我得到的输出是

代码语言:javascript
复制
AAAAAQWQrt12345AAAAA
AAAAAQWQrt12345AAAAA33

wwAAAAAQWQrt12345AAAAA
AAAAAQWQrt12345AAAAA34

qwwAAAAAQWQrt12345AAAAA

有什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-27 12:38:56

String.Replace状态的描述,

返回一个新字符串,其中当前实例中所有指定字符串的出现都将替换为另一个指定字符串。

重要的是,“所有的事件.都被替换了”。因为替换字符串也与正则表达式模式匹配,因此它将在每次迭代中被替换(从而添加另一组'A')。

尝试使用这样的测试用例,而不是:

代码语言:javascript
复制
        replacement = match.Value.Replace("Q", "A")

这里的细节并不重要(您可以随意更改),关键是要更改某些内容,这样就不会重复匹配字符串。

票数 0
EN

Stack Overflow用户

发布于 2014-11-27 11:35:31

简单地说,你每次比赛时都要加上“A”+“匹配”+“A”。

导致AAAAA之前和之后,您的投入。我被否决了?

好的,我解释您的第一个匹配输入结果是您输入的(所有字符都可以匹配),然后添加"A“两边,并希望用原始值替换您的替换值。

下面是获取期望值的c#代码:

代码语言:javascript
复制
        var input = "QWQrt1234533"; //your second line example
        const string pattern = "QWQ[a-z][a-z][0-9][0-9][0-9][0-9][0-9]";
        var rgx = new Regex(pattern);

        Match match = Regex.Match(input, pattern);
        while (match.Success)
        {
            var replacement= "A" + match.Value + "A";
            input = input.Replace(match.Value, replacement);
            match = match.NextMatch();
        }
        Console.Write(input);

导致你被删除:"AQWQrt12345A33“

即使在发布的VB代码中也没有得到结果(在我第一次响应之后,您没有编辑原版吗?)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27169617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档