繁体   English   中英

正则表达式替换字符串中的子字符串

[英]Regex replace substring from string

我认为这个问题已经被问过很多次,但是我还没有找到一个具有C#风格的问题(或者我不知道如何从python / perl等将其转换为C#。)。 我正在创建一个函数,希望它从字符串中删除匹配的字符串。

我希望它可以匹配整个单词以及部分单词...这是到目前为止我可以匹配整个单词的内容:

public string regExRemove(string text, List <String> words)
    {

        string pattern =
            @"(?<=\b)(" +
            String.Join(
                "|",
                words
                    .Select(w => Regex.Escape(w))
                    .ToArray()) +
             @")(?=\b)";
        var regex = new Regex(pattern);
        string strReturn = regex.Replace(text, "");

        return strReturn;

    }

我从另一个stackoverflow问题中得到了这个。 正如我所说,这是整个单词的匹配。 我希望它与字符串“文本”中任何位置的“单词”列表匹配,然后将其删除。

例如,我想从单词列表中删除单词Apples,Peachs,这些字符串例如我有[apples]我有-apples我有apples和Peaches I Peachs有Apples I.Peaches有[Apples]

在单词列表中,我还将传递特殊字符以删除“ [”,但我也想替换“”。 与空格等...

所以清单变成我有我有我有我有

如何修改上面的正则表达式来做到这一点?

谢谢

怎么样呢?

    public string stripify(string text, List<string> words)
    {
        var stripped = words.Aggregate(text, (input, word) => input.Replace(word, ""));
        return stripped.Replace('.', ' ');
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM