Добавьте возврат каретки, используя регулярное выражение любого числа - PullRequest
0 голосов
/ 26 мая 2019

У меня есть текст, который выглядит так:

3    Q    I think I started out, I said when4 you first noticed
the oyster beds, it sounded5 like it didn't really concern you, you did not6 believe that the dredging material or the berm7 building material could reach the oyster beds?8    A    That's correct.9    Q

Мне нужно иметь вывод, который находит первое из любой числовой последовательности (т. Е. "10" не обязательно должно быть двойным совпадением для 1 и 0) и выглядит примерно так (минус пробелы, которые я должен был поставить между каждая строка):

3    Q    I think I started out, I said when

4 you first noticed the oyster beds, it sounded

5 like it didn't really concern you, you did not

6 believe that the dredging material or the berm

7 building material could reach the oyster beds?

8    A    That's correct.

9    Q

Ответы [ 2 ]

3 голосов
/ 26 мая 2019

Здесь мы могли бы просто захотеть захватить (\d+), а затем заменить его новой строкой и $1:

enter image description here

RegEx

Если это выражение нежелательно, его можно изменить / изменить в regex101.com .

Демо

2 голосов
/ 26 мая 2019

Мы можем попробовать сопоставить по шаблону:

(?<=.)(\d+)

Это означает совпадение и захват числа любого размера при условии, что это не первое число в тексте. Это позволяет избежать добавления нежелательной новой строки перед первой строкой, начинающейся с 3. Затем мы можем заменить на новую строку, за которой следует захваченный номер. Вот рабочий скрипт:

Dim regex As Regex = new Regex("(?<=.)(\d+)")
Console.WriteLine(regex.Replace("1 stuff10 more stuff", vbCrLf & "$1"))

Это выводит:

1 stuff
10 more stuff

Обязательно включите Imports Microsoft.VisualBasic, чтобы иметь возможность использовать vbCrLf в своем коде.

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