Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
[\r\n]+
должен работать также
Обновление 26-го марта 2012, дата выпуска [1 172] Блокнот ++ 6.0 :
OMG, это на самом деле работает теперь!!!
<час>
Исходный ответ 2008 (Блокнот ++ 4.x) - 2009-2010-2011 (Блокнот ++ 5.x)
На самом деле не, это, кажется, не работает с regexp...
, Но если у Вас есть Блокнот ++ 5.x, можно использовать' , расширился ' режим поиска, и ищите \r\n
. Это действительно находит весь Ваш CRLF
.
(я понимаю, это - тот же ответ, чем другие, но снова, 'расширенный режим' только доступен с Блокнотом ++ 4.9, 5.x и больше)
<час> С апреля 2009, у Вас есть статья Wiki о Блокноте ++ сайт по этой теме:
" , Как Заменить Концы строки, таким образом изменив расположение строки ".
(упомянутый [1 127] georgiecasey в его ответ ниже )
Некоторые соответствующие извлечения включает следующие поисковые процессы:
<час>Простой поиск ( Ctrl + F ), Режим поиска =
Normal
можно выбрать
EOL
в окне редактирования.
- Просто перемещают курсор до конца строки и вводят Сдвиг + Право Стрелка.
- или, для выбора
EOL
с мышью, запускаются только в конце строки и перетаскивают к запуску следующей строки; перетаскивание направо от этиEOL
не будет работать. Можно вручную скопироватьEOL
и вставить его в поле для файлов Unix (LF
- только).Простой поиск (Ctrl+F), Режим поиска = Расширенный
шоу опции "Extended"
\n
и\r
как символы, которые могли быть подобраны.
Как с Нормальным режимом поиска, Блокнот ++ ищет точный символ.
Поиск\r
в файле формата UNIX ничего не найдет, но поиск\n
будет. Точно так же файл формата Macintosh будет содержать\r
, но не\n
.Простой поиск (Ctrl+F), Режим поиска = Регулярное выражение
Регулярные выражения используют символы
^
и$
для привязки строки совпадения к началу или концу строки. Например, поискreturn;$
найдет случаи "возврата"; это происходит без последующего текста на той же самой строке. Символы привязки работают тождественно во всех форматах файлов.
'.' точечный метасимвол не соответствует окончаниям строки.[Протестированный в Блокноте ++ 5.8.5]: поиск регулярного выражения с явным
\r
или\n
не работает (вопреки документация Scintilla ) .
Ни один не делает поиск на явном (вставляемом) LF, или на (невидимых) символах EOL, помещенных в поле, когда EOL выбран. Расширенный поиск ( Ctrl + R ) без regexpCtrl + M вставит что-то, что соответствует новым строкам. Они будут заменены строкой замены.
я рекомендую этот метод как самое надежное, если Вы действительно не должны использовать regex.
Как пример, для удаления каждой второй новой строки в двойном расположенном с интервалами файле, вводят Ctrl + M дважды в поле строки поиска, и однажды в поле строки замены.Расширенный поиск ( Ctrl + R ) с Regexp.
Ни Ctrl + M ,
$
, ни\r\n
не подобраны.
та же Wiki также упоминает альтернатива Hex-редактора :
- Тип новая строка в начале документа.
- Тогда выбор к [1 177] просматривают документ в режиме Hex .
- Выбор одна из новых строк и хита Ctrl + H .
- , В то время как у Вас есть диалоговое окно Replace, выберите на фоне, новая замещающая строка и Ctrl + C копируют его для вставки его в Замене вводом текста.
- Тогда Замена или Замена Все, как Вы желаете.
Примечание: символ, выбранный для новой строки обычно, появляется как [1 178]
0a
.
Это может иметь различное значение, если файл находится в Windows Format. В этом случае можно всегда переходить в [1 123], и после нового коммутатора это назад иEdit -> EOL Conversion -> Convert to Windows Format
.
Принятие его имеет поиск "регулярных выражений", ищите \r\n. Я предпочитаю \r? \n, потому что некоторые файлы не используют возвраты каретки.
РЕДАКТИРОВАНИЕ: Спасибо за обратную связь, кто бы ни провалил это. Я узнал, что... хорошо, ничто, потому что Вы не обеспечили обратной связи. Почему эта несправедливость?
У меня не было большой удачи с \r\n регулярными выражениями из найти/заменить окна.
Однако это работает в Блокноте ++ v4.1.2:
Использование меню "View | Show end of line" для включения дисплея конца символов строки. (Переводы строки возврата каретки должны обнаружиться, поскольку сингл заштриховал 'символ' CRLF.)
Выбор один из 'символов' CRLF (помещает курсор только перед одним, удержите клавишу SHIFT и затем нажатие RIGHT CURSOR key однажды).
Копия символ CRLF к буферу обмена.
Удостоверяются, что Вы не делаете , имеют находку или находят/заменяют диалоговое окно открытым.
Открывают найти/заменить диалоговое окно. Поле 'Find what' показывает содержание буфера обмена: в этом случае символ CRLF - который обнаруживается как 2 'символа поля' (по-видимому, это - непечатный символ?)
Гарантируют, что опция 'Regular expression' ВЫКЛЮЧЕНА.
Теперь необходимо быть в состоянии считать, найти, или замена, как желаемый.
На диалоговом окне Замены Вы хотите установить режим поиска на "Расширенный". Нормальный или работа привычки режимов Regular Expression.
Тогда просто находят "\r\n" (или просто \n для файлов Unix или просто \r для файлов формата Mac) и устанавливают замену на то, что Вы хотите.
Кажется, что это FAQ, и предлагаемое разрешение:
Простой поиск (Ctrl+H) без regexp
можно повернуть выставленный для обозрения Выставочный Конец / Строки или просмотреть/Показать Все и выбрать теперь видимые символы новой строки. Тогда при запуске команды, некоторые символы, соответствующие символу новой строки, будут вставляться в поле поиска. Соответствия будут заменены строкой замены, в отличие от этого, в regex режиме.
Примечание 1: при выборе их с мышью запустите незадолго до них и перетащите к запуску следующей строки. Перетаскивание до конца строки не будет работать.
Примечание 2: Вы не можете скопировать и вставить их в поле сами.
Расширенный поиск (Ctrl+R) без regexp
Ctrl+M вставит что-то, что соответствует новым строкам. Они будут заменены строкой замены.
Используйте опцию расширенного поиска ( Ctrl + R ) и используйте сочетание клавиш для CRLF ( Ctrl + M ) для вставки возврата каретки.
Для нахождения любого своего рода последовательностью разрыва строки используют следующую конструкцию regex:
\R
, Чтобы найти и выбрать последовательный последовательности разрыва строки, добавьте +
после \R
: \R+
.
Удостоверяются, что Вы включаете Регулярное выражение режим:
Это соответствует:
U+000DU+000A -
CRLF' последовательность U+000A
- LINE FEED
, LFU+000B
- LINE TABULATION
, VTU+000C
- FORM FEED
, FFU+000D
- CARRIAGE RETURN
, CRU+0085
- NEXT LINE
, NELU+2028
- LINE SEPARATOR
U+2029
- PARAGRAPH SEPARATOR