我认为这个问题已被多次询问过,但我没有找到一个带有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问题得到了这个。正如我所说,这是匹配整个单词。我希望它匹配字符串“text”中任何位置的“单词”列表,然后将其删除。
例如,我想删除单词Apples,Peaches,这些单词将出现在单词列表中 我有[苹果] 我有 - 苹果 我有苹果和桃子 我桃子有苹果 I.Peaches有[苹果]
在单词列表中,我还将传递特殊字符以删除即“[”,但我也想替换“。”有空格等...
所以列表变成了 我有 我有 我有和 我有 我有
如何修改上面的上述正则表达式呢?
由于
答案 0 :(得分:0)
相反怎么样?
public string stripify(string text, List<string> words)
{
var stripped = words.Aggregate(text, (input, word) => input.Replace(word, ""));
return stripped.Replace('.', ' ');
}