Regex для вставки новых строк в большой блок текста в определенных местах - PullRequest
2 голосов
/ 11 февраля 2009

У меня довольно большой текстовый файл, в котором есть несколько пропущенных символов новой строки, что означает, что это беспорядок. Мне нужно разбить его на соответствующие строки.

Текст теперь выглядит примерно так:

12345 This is a chunk 23456 This is another chunk 34567 This is yet another chunk 45678 This is yet more chunk 56789 Yet another piece of text

Мне нужно регулярное выражение, которое будет вставлять новую строку (пару CR / LF) перед каждой группой из пяти цифр, что приведет к чему-то вроде:

12345 This is a chunk 
23456 This is another chunk 
34567 This is yet another chunk 
45678 This is yet more chunk 
56789 Yet another piece of text

Может вставлять одну перед первой группой цифр или нет; что я могу иметь дело.

Есть идеи? Спасибо.

Ответы [ 2 ]

13 голосов
/ 11 февраля 2009

Очень просто (но не настолько "броско", как возможно, так как я слишком ленив, чтобы использовать взгляды):

s/(\d{5})/\r\n\1/gs
5 голосов
/ 11 февраля 2009
s/(?<=\D)(\d{5})(?=\D|$)/\n\1/g

В "\ n" против "\ r \ n"

Это может зависеть от имеющегося языка программирования, но Perl и Python заменяют \n на \r\n в Windows, поэтому в данном случае будет ошибкой заменить \n на \r\n в приведенном выше регулярном выражении.

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