Моя текущая проблема заключается в том, что я хочу разделить строку на отдельные слова и знаки препинания, но не знаю как - PullRequest
0 голосов
/ 23 мая 2019

(SearchTool) В настоящее время у меня есть очень длинная строка, которая может содержать несколько слов, включая знаки препинания или скобки.Однако теперь моя проблема заключается в том, что, когда я набираю поисковый запрос типа «яблоко», я фильтрую текстовую строку по пробелам, поэтому я получаю только одиночные символы.Но так как может случиться так, что в тексте написано, что "" яблоко "" будет разделенным словом "" яблоко "", теперь мне все равно нужно как-то отделить com от него, есть ли возможность реализовать его со всеми специальными символами?

 string[] splittedTxt = text.Split(' ');

        if (decisionForWholeWords == true && decisionForSpelling == false)
        {
            foreach (var item in splittedTxt)
            {

                if (wordToFind.ToLower() == item.ToLower())
                {
                    Console.BackgroundColor = ConsoleColor.Red;
                    var cursorPositionTop = Console.CursorTop;
                    var cursorPositionLeft = Console.CursorLeft;
                    wordFound = true;
                    foundWordPositions.Add(new CursorPosition(cursorPositionTop, cursorPositionLeft));
                }
                Console.Write(item);
                if (wordFound) // reset color
                {
                    Console.BackgroundColor = ConsoleColor.Black;

                    wordFound = false;
                }
                Console.Write(" ");
            }
        }

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Регулярное выражение \w+

Совпадает точно apple с ""apple,""

Полезный тестер регулярных выражений и справочник: http://regexstorm.net/reference

0 голосов
/ 23 мая 2019

Вы можете сделать это, если создадите массив с символами, которые вы хотите разделить, что-то вроде этого:

string mystring = "This is some, bla bla. ble, hey guys";
char[] delimiters = { ',', '.' }; //you can add your delimiters in this array
string[] result = myString.Split(delimiters);

Вывод будет:

"This is some"
" bla bla"
" ble"
" hey guys"
...