この質問は何度も聞かれていると思いますが、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;
}
別のスタックオーバーフローの質問からこれを取得しました。私が言ったように、これは単語全体に一致しています。文字列「テキスト」内の任意の場所にある「単語」リストと一致させてから、それを削除します。
たとえば、I have [apples] I have -apples I have apples と Peaches I Peaches have Apples I.Peaches have[Apples] のような文字列から、単語リストに含まれる Apples, Peaches という単語を削除したいとします。
単語リスト内では、「[」などを削除するために特殊文字も渡しますが、「.」も置き換えたいと考えています。スペースなどで...
したがって、リストは I have I have I have と I have I have になります
上記の正規表現を変更してこれを行うにはどうすればよいですか?
ありがとう