从前面有分隔符的文本中删除单词(使用Regex或List)



我需要从文本中删除带有分隔符的单词。问题是程序只删除了单词后面的1个分隔符,但是有很多分隔符。有什么建议如何去除其他分隔符吗?此外,我需要确保这个单词没有与其他字母相连。例如(如果单词是fHouse或Housef,则不应删除)

现在我有:

public static void Process(string fin, string fout)
{
using (var foutv = File.CreateText(fout)) //fout - OutPut.txt
{
using (StreamReader reader = new StreamReader(fin)) // fin - InPut.txt
{
string line;
while ((line = reader.ReadLine()) != null)
{
string[] WordsToRemove = { "Home", "House", "Room" };
char[] seperators = {';', ' ', '.', ',', '!', '?', ':'};
foreach(string word in WordsToRemove)
{
foreach (char seperator in seperators)
{
line = line.Replace(word + seperator, string.Empty);
}
}
foutv.WriteLine(line);
}
}
}
}

我有:

fhgkHouse!House!Dog;;;!!Inside!C!Room!Home!House!Room;;;;;;;;;;!Table!London!Computer!Room;..;

我得到的结果:

fhgkDog;;;!!Inside!C!;;;;;;;;;!Table!London!Computer!..;

结果应该是:

fhgkHouse!Dog;;;!!Inside!C!Table!London!Computer!

试试这个regex:b(Home|House|Room)(!|;)*b|;+..;+

参见:https://regex101.com/r/LUsyM8/1

在这里,我用空白或空字符串替换单词和特殊字符。

我猜它产生了相同的预期结果。

相关内容

  • 没有找到相关文章

最新更新