Расщепление строк в стиле «Google» - PullRequest
1 голос
/ 08 октября 2010

Я пытаюсь создать функцию, которая будет разбивать строку на поисковые термины. Использование этого кода будет работать нормально:

string TestString = "This is a test";
string[] Terms;
Terms = TestString.Split(" ");

Это разделит мою строку на 4 строки: "This", "is", "a", "test". Однако я хочу, чтобы слова, заключенные в кавычки, рассматривались как одно слово:

string TestString = "This \"test will\" fail";
string[] Terms;
Terms = TestString.Split(" ");

Это разделит мою строку на 4 строки, опять же: "This", "\" test "," will \ "", "fail"

Мне нужно, чтобы последняя строка была разбита только на 3 строки: «This», «test will», «fail»

У кого-нибудь есть идеи, как это сделать?

1 Ответ

3 голосов
/ 08 октября 2010

Попробуйте использовать регулярное выражение:

var testString = "This \"test will\" fail";
var termsMatches = Regex.Matches(testString, "(\\w+)|\"([\\w ]+[^ ])\"");
...