Regex.Split не сохраняет новую строку

Я пытаюсь разбить строку на основе \n\r\r\n, но я не хочу, чтобы Удалить их из строки

Я знаю, что Regex.Split может сохранить разделитель, но каким-то образом он их удаляет

Строковое содержимое

string contentString = @"幘䄍ਫ਼䱌㈰ぞ䙓ഊ幃噎ഊ幃䤱㝞䙏㈵ⰳ㕞䅁丬ㄲⰷ幆ㄶ幆䐀吀栀椀猀 昀漀爀洀愀琀 琀攀猀琀猀㨀幆匠ഊ幃䤱㝞䙏㈵ⰵ㕞䅁丬ㄲⰷ幆ㄶ幆䐀倀䐀䘀㐀㄀㜀 ⠀䈀㜀⤀Ⰰ 䴀漀搀攀㨀  Ⰰ 䌀䤀㈀㤀 眀椀琀栀 瘀愀氀椀搀 挀栀愀爀愀挀琀攀爀猀 幆匍ਫ਼䍉ㄷ幆伲㔬㤵幂㝎ⰵⰬⰬⱞ䘱㙞䙄01234>A>B>CABC<A<B<C^䙓ഊ幈䌍ਫ਼塚
^FX CRC Block No 1 ^FS
਍ਫ਼塁ഊ幌䰲〰幆匍ਫ਼䍖不ਫ਼䍉ㄷ幆伲㔬㌵幁䅎ⰱ㈬㝞䘱㙞䙄This format tests:^䙓ഊ幃䤱㝞䙏㈵ⰵ㕞䅁丬ㄲⰷ幆ㄶ幆䐀倀䐀䘀㐀㄀㜀 ⠀䈀㜀⤀Ⰰ 䴀漀搀攀㨀  Ⰰ 䌀䤀㈀㤀 眀椀琀栀 椀渀瘀愀氀椀搀 挀栀愀爀愀挀琀攀爀猀 幆匍ਫ਼䍉ㄷ幆伲㔬㤵幂㝎ⰵⰬⰬⱞ䘱㙞䙄01234þ>A>B>CABC<A<B<C^䙓ഊ幈䌍ਫ਼塚
^FX CRC Block No 2 ^FS
਍ਫ਼塁ഊ幌䰲〰幆匍ਫ਼䍖复ਫ਼䍉ㄷ幆伲㔬㌵幁䅎ⰱ㈬㝞䘱㙞䙄This format tests:^䙓ഊ幃䤱㝞䙏㈵ⰵ㕞䅁丬ㄲⰷ幆ㄶ幆䐀倀䐀䘀㐀㄀㜀 ⠀䈀㜀⤀Ⰰ 䴀漀搀攀㨀  Ⰰ 䌀䤀㈀㤀 眀椀琀栀 瘀愀氀椀搀 挀栀愀爀愀挀琀攀爀猀Ⰰ 愀渀搀 挀漀搀攀 瘀愀氀椀搀愀琀椀漀渀 ⠀䌀嘀⤀ 幆匍ਫ਼䍉ㄷ幆伲㔬㤵幂㝎ⰵⰬⰬⱞ䘱㙞䙄01234>A>B>CABC<A<B<C^䙓ഊ幈䌍ਫ਼塚
^FX CRC Block No 3 ^FS
਍ਫ਼塁ഊ幌䰲〰幆匍ਫ਼䍖复ਫ਼䍉ㄷ幆伲㔬㌵幁䅎ⰱ㈬㝞䘱㙞䙄This format tests:^䙓ഊ幃䤱㝞䙏㈵ⰵ㕞䅁丬ㄲⰷ幆ㄶ幆䐀倀䐀䘀㐀㄀㜀 ⠀䈀㜀⤀Ⰰ 䴀漀搀攀㨀  Ⰰ 䌀䤀㈀㤀 眀椀琀栀 椀渀瘀愀氀椀搀 挀栀愀爀愀挀琀攀爀猀Ⰰ 愀渀搀 挀漀搀攀 瘀愀氀椀搀愀琀椀漀渀⠀䌀嘀⤀ 幆匍ਫ਼䍉ㄷ幆伲㔬㤵幂㝎ⰵⰬⰬⱞ䘱㙞䙄01234þ>A>B>CABC<A<B<C^䙓ഊ幈䌍ਫ਼塚
^FX CRC Block No 4 ^FS
ਫ਼䙘⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⩞䙓"

Выражение с использованием

  Regex.Split(contentString, "\n|\r\n|\r");

Пожалуйста, помогите мне это сделать

заранее спасибо Моника

Попробуйте использовать группировка(...) для сохранения разделителей: var result = Regex.Split(contentString, "(\n|\r\n|\r)");

Dmitry Bychenko 25.08.2018 00:49

Можете подробно объяснить ?? Спасибо

user2047818 27.08.2018 16:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
2
69
1

Ответы 1

Вы должны добавить в паттерн захват скобок:

https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex.split?redirectedfrom=MSDN&view=netframework-4.7.2#System_Text_RegularExpressions_Regex_Split_System_String_System_String_

If capturing parentheses are used in a Regex.Split expression, any captured text is included in the resulting string array. For example, if you split the string "plum-pear" on a hyphen placed within capturing parentheses, the returned array includes a string element that contains the hyphen.

(смелый мой)

В вашем случае разделить

string contentString = @"幘䄍ਫ਼䱌㈰ぞ䙓ഊ幃噎ഊ幃䤱㝞䙏㈵ⰳ㕞䅁丬ㄲⰷ幆ㄶ幆䐀吀栀椀猀 昀漀爀洀愀琀 琀攀猀琀猀㨀幆匠ഊ幃䤱㝞䙏㈵ⰵ㕞䅁丬ㄲⰷ幆ㄶ幆䐀倀䐀䘀㐀㄀㜀 ⠀䈀㜀⤀Ⰰ 䴀漀搀攀㨀  Ⰰ 䌀䤀㈀㤀 眀椀琀栀 瘀愀氀椀搀 挀栀愀爀愀挀琀攀爀猀 幆匍ਫ਼䍉ㄷ幆伲㔬㤵幂㝎ⰵⰬⰬⱞ䘱㙞䙄01234>A>B>CABC<A<B<C^䙓ഊ幈䌍ਫ਼塚
^FX CRC Block No 1 ^FS
਍ਫ਼塁ഊ幌䰲〰幆匍ਫ਼䍖不ਫ਼䍉ㄷ幆伲㔬㌵幁䅎ⰱ㈬㝞䘱㙞䙄This format tests:^䙓ഊ幃䤱㝞䙏㈵ⰵ㕞䅁丬ㄲⰷ幆ㄶ幆䐀倀䐀䘀㐀㄀㜀 ⠀䈀㜀⤀Ⰰ 䴀漀搀攀㨀  Ⰰ 䌀䤀㈀㤀 眀椀琀栀 椀渀瘀愀氀椀搀 挀栀愀爀愀挀琀攀爀猀 幆匍ਫ਼䍉ㄷ幆伲㔬㤵幂㝎ⰵⰬⰬⱞ䘱㙞䙄01234þ>A>B>CABC<A<B<C^䙓ഊ幈䌍ਫ਼塚
^FX CRC Block No 2 ^FS
਍ਫ਼塁ഊ幌䰲〰幆匍ਫ਼䍖复ਫ਼䍉ㄷ幆伲㔬㌵幁䅎ⰱ㈬㝞䘱㙞䙄This format tests:^䙓ഊ幃䤱㝞䙏㈵ⰵ㕞䅁丬ㄲⰷ幆ㄶ幆䐀倀䐀䘀㐀㄀㜀 ⠀䈀㜀⤀Ⰰ 䴀漀搀攀㨀  Ⰰ 䌀䤀㈀㤀 眀椀琀栀 瘀愀氀椀搀 挀栀愀爀愀挀琀攀爀猀Ⰰ 愀渀搀 挀漀搀攀 瘀愀氀椀搀愀琀椀漀渀 ⠀䌀嘀⤀ 幆匍ਫ਼䍉ㄷ幆伲㔬㤵幂㝎ⰵⰬⰬⱞ䘱㙞䙄01234>A>B>CABC<A<B<C^䙓ഊ幈䌍ਫ਼塚
^FX CRC Block No 3 ^FS
਍ਫ਼塁ഊ幌䰲〰幆匍ਫ਼䍖复ਫ਼䍉ㄷ幆伲㔬㌵幁䅎ⰱ㈬㝞䘱㙞䙄This format tests:^䙓ഊ幃䤱㝞䙏㈵ⰵ㕞䅁丬ㄲⰷ幆ㄶ幆䐀倀䐀䘀㐀㄀㜀 ⠀䈀㜀⤀Ⰰ 䴀漀搀攀㨀  Ⰰ 䌀䤀㈀㤀 眀椀琀栀 椀渀瘀愀氀椀搀 挀栀愀爀愀挀琀攀爀猀Ⰰ 愀渀搀 挀漀搀攀 瘀愀氀椀搀愀琀椀漀渀⠀䌀嘀⤀ 幆匍ਫ਼䍉ㄷ幆伲㔬㤵幂㝎ⰵⰬⰬⱞ䘱㙞䙄01234þ>A>B>CABC<A<B<C^䙓ഊ幈䌍ਫ਼塚
^FX CRC Block No 4 ^FS
ਫ਼䙘⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⩞䙓";

Вместо оригинального паттерна "\n|\r\n|\r" вы можете поставить такой же, но с захватывающими скобками: "(\n|\r\n|\r)" т.е.

  string[] parts = Regex.Split(contentString, "(\n|\r\n|\r)");

Другие вопросы по теме