سوال خود را بپرسید

توضیحات بخش

rss
سوال و جواب برای متخصصان و علاقه مندان به برنامه نویسی در همه زبان ها و همه پلت فرم ها

آمار بخش

کاربران 29
سوال ها 71
پاسخ ها 80
نظر سنجی ها 0

برترین کاربر ها

بیشترین تگ ها

1

چگونه کلمات تکراری پشت سر هم را حذف کنیم؟

من یک رشته به صورت زیر دارم و باید کلمات تکراری پشت سر هم در آن حذف شود.

var sentence = "این یک متن متن با کلمات تکراری است . کلمات تکراری تکراری پشت سر هم در این متن باید حذف شود";

یعنی به صورت زیر :

var sentence = "این یک متن با کلمات تکراری است . کلمات تکراری پشت سر هم در این متن باید حذف شود";

ولی در صورتیکه از روش زیر استفاده کنم:

string.Join(" ", sentence.Split(' ').Distinct());

نتیجه به شکل زیر می شود که اشتباه است:

این یک متن با کلمات تکراری است . پشت سر هم در باید حذف شود

چه راهی برای انجام اینکار وجود داره؟
پاسخ به سوال
811بازدید

پاسخ ها (1)

1
با استفاده از RegularExpression می توانید کلمات تکراری پشت سر هم را حذف کنید بدون اینکه مشکلی که بیان کردید به وجود بیاد.
برای این کار ابتدا این کلمات را پیدا می کنیم و در تهایت کل عبارت تکراری را با یکی از آنها جایگزین می کنیم.
قطعه کد زیر این کار را انجام می دهد.

Regex regex = new Regex(@"(\w*?\s+)(\1)+", RegexOptions.Multiline | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
string result = regex.Replace(sentence , @"$1");
پاسخ به سوال
تعداد حروف 0