Я хочу найти все содержимое между двумя символами, скажем, A
и B
:
Asd;lfksjd;fsdfjs;ldfkB
который будет sd;lfksjd;fsdfjs;ldfk
и заменить их. Как бы я написал это выражение?
Я хочу найти все содержимое между двумя символами, скажем, A
и B
:
Asd;lfksjd;fsdfjs;ldfkB
который будет sd;lfksjd;fsdfjs;ldfk
и заменить их. Как бы я написал это выражение?
Я очень плохо знаком с регулярными выражениями, так что, надеюсь, это сработает для вас.
Я думаю, что A. * B будет регулярным выражением для поиска. То есть ищите A и B с нулем или большим количеством вещей между ними.
Это регулярное выражение включает в себя A и B в совпадении, поэтому вам придется добавить их обратно с заменой.
AreplaceB Будет текст, чтобы заменить его.
Вы можете сопоставить любой символ между A и B следующим RegEx:
(?<=A).*(?=B)
Это не возвращает A или B как часть совпавших символов.
(?<=A)
означает, что A стоит перед основным выражением и что, если оно совпадает, вы не хотите, чтобы оно было включено в основной результат.
.*
означает совпадение с любым символом, встречающимся 0 или более раз. Если вы хотите, чтобы между A и B был хотя бы один символ, вы можете использовать +.
(?=B)
означает, что B идет после основного выражения, и если оно совпадает, вы не хотите, чтобы оно было включено в основной результат.
Редактировать:
Notepad++ не поддерживает Lookahead / Back, поэтому вы можете заменить
(A).*(B)
с
\1\2
вместо.
Обратите внимание, что это жадный, поэтому, если есть "AxB y AzB", вы получите "AB". Чтобы получить "AB y AB", используйте
(A).*?(B)
вместо.
* Отредактировано без жадности .?*
было неверно