Regex: как убрать последнюю пустую строку? - PullRequest
1 голос
/ 30 апреля 2019

Я хочу удалить самую последнюю пустую строку из файла, используя regex search-replace.Сопоставление новой строки с маркером конца строки:

\n$

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

enter image description here

Я использую Sublime в Windows, если соглашение об окончании строки и механизм регулярных выражений имеют значение.

Ответы [ 2 ]

5 голосов
/ 30 апреля 2019

Вы можете использовать \s*\Z для выбора всех пробелов, включая символы новой строки, и \Z отмечает конец ввода и заменяет его пустой строкой.

Это действительно избавит от всех новых строк в конце текста (один или несколько), даже если эти новые строки могут содержать пробелы (не так легко увидеть), что может быть полезно, потому что в целом мы хотим избавиться от лишних бесполезные строки в конце текста в файле.

На всякий случай, если вы хотите избавиться от ТОЛЬКО ОДНОЙ строки из конца файла, вы можете использовать \n\Z вместо \s*\Z.

Пожалуйста, проверьте следующие скриншоты, демонстрирующие то же самое.

Перед заменой

enter image description here

После замены

enter image description here

2 голосов
/ 30 апреля 2019

Следующее регулярное выражение должно помочь вам достичь этого

\n\s*$(?!\n)

Он начинается со строки 6, и соответствует всему в строке 7 и удаляет его. В основном он ищет строку, которая является пустой и не имеет возврата каретки в конце

Демо 1

Посмотрите внимательно, вы увидите, что строка 7 исчезла при замене

Демонстрация 2 (в коде Visual Studio)

До

enter image description here

* После 1024 *

enter image description here

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