Используя регулярные выражения, чтобы сделать массовую замену в Блокноте ++ и Vim

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

31
задан Sagar Jain 17 September 2015 в 18:18
поделиться

10 ответов

Все перед А , B, C, и т.д.

, Который кажется настолько простым, я должен неправильно истолковывать Вас. Это всего

:%s/<.*>//
20
ответ дан 27 November 2019 в 21:22
поделиться

Vim:

: %s/.*>//

1
ответ дан 27 November 2019 в 21:22
поделиться

Это будет работать. Протестированный это в моей энергии. одинарные кавычки являются проблемой.

1,$s/^<option value value=['].['] >/
1
ответ дан 27 November 2019 в 21:22
поделиться

Может помочь, менее ли Вы конкретны. Ваше выражение там является "жадным", который может быть интерпретирован различные пути различными программами. Попробуйте это в энергии:

%s/^<[^>]+>//
4
ответ дан 27 November 2019 в 21:22
поделиться

Существует две проблемы с Вашим исходным решением. Во-первых, Ваш текст в качестве примера:

<option value value='1' >A

имеет два происшествия слова "значения". Ваш regex не делает. Кроме того, необходимо выйти из вводной фигурной скобки в кванторе regex, или Vim интерпретирует его как литеральную фигурную скобку. Этот regex работы:

:%s/<option value value='.\{1,}' >//g
7
ответ дан 27 November 2019 в 21:22
поделиться

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

(.*)(>)(.*)

будет соответствовать шаблону, указанному в Вашем сообщении.

Так, в блокноте ++ Вы находите (.*)(>)(.*) и заменяете его \3.

регулярные выражения являются в основном жадными в том смысле, что, если Вы указываете (.*), это будет соответствовать целой строке и что Вы хотите сделать, ломают его так или иначе так, чтобы можно было извлечь строку, которую Вы хотите сохранить. Здесь, я сделал точно то же, и оно хорошо работает в Блокноте ++ и Editplus3.

8
ответ дан 27 November 2019 в 21:22
поделиться

Это удалит эти option тег и просто оставит буквы в энергии:

:%s/<option.*>//g
6
ответ дан 27 November 2019 в 21:22
поделиться

В Блокноте ++:

<option value value='1' >A
<option value value='2' >B
<option value value='3' >C
<option value value='4' >D


Find what: (.*)(>)(.)
Replace with: \3

Replace All


A
B
C
D
30
ответ дан 27 November 2019 в 21:22
поделиться

В энергии

:%s/<option value='.\{1,}' >//

или

:%s/<option value='.\+' >//

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

Видят :help /magic для наблюдения, каких специальных символов нужно оставить (и как изменить это).

3
ответ дан 27 November 2019 в 21:22
поделиться

Имея ту же проблему (со строками jQuery "done ..."), но только в Notepad ++, я спросил, получил хорошие дружеские ответы (которые заставили меня понять, что я пропустил ), а затем потратил время на создание подробного пошагового объяснения, см. Поиск начала строки с использованием регулярного выражения в Notepad ++

Версаль, вторник, 27 апреля 2010 г., 22:53:25 +0200

{{ 1}}
2
ответ дан 27 November 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: