Как разделить строку и сохранить разделители в C# - PullRequest
0 голосов
/ 05 августа 2020

У меня есть строка с беглым английским sh параграф:

Заклинившее игнорирование проходит ниже жирного боя. Предохранитель сработает вокруг кабеля! Любой раскаивающийся столб одобряет подходящее молоко. Забор преобладает над торговым шарфом.

Я хочу разделить строку на пробелы ' ' и все знаки препинания et c .. например: .,?!;:, но сохранить их в массиве строк .

Я хочу, чтобы после разделения строка выглядела так:

The
jammed 
disregard
...
!

Any
...

До сих пор я пробовал что-то вроде:

string s = "The jammed disregard treks below a fat combat. The fuse succeeds 
around the cable! Any repent pole approves the suited milk. The 
fence prevails above the trade scarf."

string[] splitStrings = Regex.Split(s, @"(?<=[.,?!;:])");

, но я не знаете, как включить пробелы в регулярное выражение

Изменить: чтобы избежать путаницы: я пытаюсь извлечь каждое отдельное слово, пробел и пунктуацию из абзаца engli sh и поместить его в массив строк ( надеюсь, что это поможет).

Ответы [ 2 ]

2 голосов
/ 05 августа 2020

Я предполагаю, что вы хотите что-то вроде этого (исходя из вашего вывода)

var s = "The jammed disregard treks below a fat combat. The fuse succeeds around the cable! Any repent pole approves the suited milk. The fence prevails above the trade scarf.";

var split = Regex
   .Replace(s, @"([ .,?!;:])", Environment.NewLine + "$1" + Environment.NewLine)
   .Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries);

foreach (var item in split)
   Console.WriteLine(item);

Вывод

The

jammed

disregard

treks

below

a

fat

combat
.

The

fuse

succeeds

around

the

cable
!

Any

repent

pole

approves

the

suited

milk
.

The

fence

prevails

above

the

trade

scarf
.
0 голосов
/ 05 августа 2020

Этого должно быть достаточно для вас

char[] delimiters = new char[]{ ' ', ':', ...other chars];
string[] splitter = myString.Split(delimiters).ToArray();

Обратите внимание на пространство, которое я поместил в массив

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...