2010-10-14 3 views
0

Я попытался использовать каждую возможную комбинацию RegexOptions.MultiLine и экранированных обратных косых черт, чтобы разделить текст с помощью \ в качестве разделителя.Regex разделил многострочную строку с помощью

У меня есть этот текст:

The quick brown 
Fox jumps\ 
Over the 
Lazy dog\ 

Я хочу, чтобы разбить его на

The quick brown 
Fox jumps\ 

и

Over the 
Lazy dog\ 

я пытался до сих пор (вместе с вызовом в Сплите метод регулярного выражения):

Regex regexSplit = new Regex(@"\\$", RegexOptions.Multiline); 
Regex regexSplit = new Regex(@"\$", RegexOptions.Multiline); 
Regex regexSplit = new Regex(@"\\$", RegexOptions.Singleline); 
Regex regexSplit = new Regex(@"\$", RegexOptions.Singleline); 
Regex regexSplit = new Regex(@"\\$"); 
Regex regexSplit = new Regex(@"\$"); 

Каждый раз, когда я возвращаю полную исходную строку. Не могли бы вы дать мне руку, пожалуйста?

Заранее спасибо.

EDIT: я удалил дополнительное пространство. Причина, по которой мне нужно использовать регулярное выражение, заключается в том, что \ может находиться внутри соответствия, заключенного в "" или ''. Вот почему мне нужно совпадение и на конце линии.

Должен добавить, что \\$ работает, когда я тестирую выражение, используя RegexBuddy и тот же текст ввода.

ответ

1

У вас есть дополнительное пространство на «Fox jump», поэтому @"\\$" не будет соответствовать. Либо удалите пробел, либо используйте @"\\" для разделения. Вы также можете проверить пробелы @"\\\s*$".

Это следует сделать трюк:

var results = Regex.Split(subject, @"\\\s*$", RegexOptions.Multiline); 
+0

Спасибо, я удалил дополнительное пространство. –

+0

Работает! Я должен добавить, что я не уверен, что есть пробел между \ и концом строки в этом случае. Спасибо за вашу помощь! –

1

Почему это не простая строка раскол:

 string s = "The quick brown\r\nFox jumps\\\\r\n Over the\r\nLazy dog\\"; 
    s.Split(new string[] { "\\\r\n" }, StringSplitOptions.RemoveEmptyEntries); 
+1

Ему может быть интересно разделить только, если \ находится в конце строки. – Diadistis

+0

@Diadistis: Правильно, я редактировал свое сообщение. –

+0

См. Мое обновление .. – Aliostad

Смежные вопросы