Анизотропность RegExp'ов
В замечательном текстовом редакторе Vim есть, как и в любом приличном редакторе, функция поиска и замены. Зиждется эта функция, разумеется, на регулярных выражениях…
Знаете, в интернет-библиотеках очень много книг в формате TXT, отформатированных по-досовски, с фиксированной длиной строки. При чтении, особенно с телефона, это в наше время жутко неудобно, так что приходится сначала заменить все «переводы строк» на пробелы, потом серии из шести-семи пробелов — на «переводы строк» (чтобы там, где красная строка действительно нужна, она была), а потом ещё слегка «причесать» текст, заменив дефисы между пробелами на тире и убрав парные пробелы, хотя бы. Конечно, для этого стоило бы давно написать скрипт, но у меня всё руки не дойдут, так что делается всё по-старинке, текстовым редактором.
Так вот, при поиске эти самые «переводы строки», «Enter’ы», в регулярном выражении задаются как \n
. Зато при замене \n
— это null-символ, а «перевод строки» — это \r
. Интересно, это только в Vim так, или везде, где нужно «регулярно выражаться»? И, главное, зачем и кому потребовалось создавать такую путаницу?