Я хочу разбить текст на предложения. Для простого случая, у меня есть следующий код: «.„разобрать текст в предложения через регулярное выражение
Regex.Split (input, @ "(? <= [\.! \?])");
Однако это только обрабатывает предложения, которые заканчиваются одним символом, в то время как я хочу, чтобы иметь возможность обрабатывать предложения, которые заканчиваются с любым из“ ... ","! ","! .. ","? ","? .. ","?! ","?!. ","!? ","!?. ","‽ " или "‽..".
Для простого случая с только "." и «...», например „шустрая лиса Простого путь а ... Qwerty.“, я написал следующий код:
string [] sentences = Regex.Split (input, @ "(? <= \. \. \. | \.)");
Однако, это разбивает строку вверх, как ниже:
- Быстро коричневый лисица.
- Простой способ пойти abc.
- .
- .
- Qwerty.
В то время как я хочу это:
- шустрая лиса.
- Простой способ передвижения abc ...
- Qwerty.
Как написать регулярное выражение для этого?
Таким образом, решение
(?<=\.)\s*(?=[^.])
у вас есть пробелы между ними периодов в вашей модели, и почему вы ищете осмотреться? попробуйте что-то вроде '\. \. \. \ \ .' без lookbehind или пробелов (EDIT: я понимаю, почему вы хотите, чтобы lookbehind теперь, но избавиться от пробелов) –
В общем, я не уверен, что регулярное выражение будет достаточно мощным.Как, например, как вы разделите Смит не мог понять его регулярное выражение. Он искал StackOverflow и т. Д., Но ничего не нашел. – Xophmeister
Но тогда строка будет без точек. И мне нужны строки с точками –