C# Regex удалить предложения после какой-то конкретной вкладки
Как мне написать регулярное выражение для удаления предложений после определенной вкладки?
Например, мой текст в richtextbox
a 00001740 0.125 0 able#1 (usually followed by `to') having the necessary means or skill or know-how or authority to do something; "able to swim"; "she was able to program her computer"; "we were at last able to buy a car"; "able to get a grant for the project"
a 00002098 0 0.75 unable#1 (usually followed by `to') not having the necessary means or skill or know-how; "unable to get to town without a car"; "unable to obtain funds"
a 00002312 0 0 dorsal#2 abaxial#1 facing away from the axis of an organ or organism; "the abaxial surface of a leaf is the underside or side facing away from the stem"
Этот текст от sentiwordnet. Я хочу удалить предложение после пятой вкладки, как после того, как слово "способное № 1" должно быть опущено (т. Е. Его глянец), затем после другого слова, не способного № 1, его глянец должен быть опущен.
какое будет его регулярное выражение для удаления блеска слов в текстовом файле sentiwordnet. Есть ли способ сделать это или кто-то может сделать мне небольшой образец / пустоту для этого?
вывод должен быть таким:
a 00001740 0.125 0 able#1
a 00002098 0 0.75 unable#1
a 00002312 0 0 dorsal#2 abaxial#1
2 ответа
Это должно сделать работу
string text = @"a 00001740 0.125 0 able#1 (usually followed by `to') having the necessary means or skill or know-how or... ";
string res = Regex.Replace(text, @"((?:[^\t]+\t){5}).+$", "$1");
Вместо этого вы можете искать # с последующими цифрами. Так что регулярное выражение будет
(?<=#\d+)[^#]*$
[^#]*
будет соответствовать 0 многим символам, кроме #
(?<=#\d+)
проверит, встречается ли конкретный шаблон (# с последующими цифрами) перед соответствием [^#]*
$
изображает конец строки
ИЛИ ЖЕ
\t[^\t]+$
Вы можете использовать функцию замены регулярного выражения
input=Regex.Replace(input,regex,"");