Спасибо Jivlain, он отлично работает, для соответствия.

ужно разбить строку, как показано ниже, на основе пробела в качестве разделителя. Но любое пространство внутри цитаты должно быть сохранено.

research library "not available" author:"Bernard Shaw"

в

research
library
"not available"
author:"Bernard Shaw"

Я пытаюсь сделать это в C Sharp, у меня есть это регулярное выражение:@"(?<="")|\w[\w\s]*(?="")|\w+|""[\w\s]*""" из другого поста в SO, который разбивает строку в

research
library
"not available"
author
"Bernard Shaw"

что, к сожалению, не соответствует моим точным требованиям.

Я ищу любое регулярное выражение, которое бы сработало.

Любая помощь приветствуется.

Ответы на вопрос(1)

Решение Вопроса

должно работать следующее:

splitArray = Regex.Split(subjectString, "(?<=^[^\"]*(?:\"[^\"]*\"[^\"]*)*) (?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");

Это регулярное выражение разделяется на пробельные символы, только если им предшествует четное количество кавычек.

Регулярное выражение без всех этих избежавших кавычек объяснило:

(?<=      # Assert that it's possible to match this before the current position (positive lookbehind):
 ^        # The start of the string
 [^"]*    # Any number of non-quote characters
 (?:      # Match the following group...
  "[^"]*  # a quote, followed by any number of non-quote characters
  "[^"]*  # the same
 )*       # ...zero or more times (so 0, 2, 4, ... quotes will match)
)         # End of lookbehind assertion.
[ ]       # Match a space
(?=       # Assert that it's possible to match this after the current position (positive lookahead):
 (?:      # Match the following group...
  [^"]*"  # see above
  [^"]*"  # see above
 )*       # ...zero or more times.
 [^"]*    # Match any number of non-quote characters
 $        # Match the end of the string
)         # End of lookahead assertion
 ErTR26 янв. 2016 г., 01:25
Как разделить его точками, вопросительными знаками, восклицательными знаками и т. Д. Вместо пробелов. Я пытаюсь получить каждое предложение одно за другим, кроме внутри кавычек. Например: гулял.Повернулся назад. Но почему?И сказал: "Привет, мир. Черт возьми, расщепление строк!" без стыда.
 Tim Pietzcker26 янв. 2016 г., 08:12
@ ErtürkÖztürk: Это достойно отдельного вопроса StackOverflow - слишком большой, чтобы ответить в комментарии.
 ErTR26 янв. 2016 г., 15:34
@TimPietzcker ну я не знаю почему, но я задал почти такой же вопрос (stackoverflow.com/questions/33886103/...) и я получил слишком много реакции типа «здесь не служба написания кода» или «это не ясно», поэтому я пытаюсь использовать свой шанс в комментариях.

Ваш ответ на вопрос