我认为这个问题已经被问过很多次了,但我还没有找到一个具有 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,Peaches,它们将出现在单词列表中,例如 I have [apples] I have -apples I have apples and Peaches I Peaches have Apples I.Peaches have[Apples]
在单词列表中,我还将传递特殊字符以删除即“[”,但我也想替换“。” 带空格等...
所以列表变成了我有我有我有我有
我怎样才能修改上面的正则表达式来做到这一点?
谢谢