#notepad
#notepad
Вопрос:
У меня есть файл, который выглядит следующим образом:
SizeMinMax: [ 8, 14 ]
SizeMinMax: [ 4, 8 ]
SizeMinMax: [ 6, 10 ]
и так далее.
Мне нужно установить первое число в скобках равным 0 для всех записей, чтобы оно выглядело так:
SizeMinMax: [ 0, 14 ]
SizeMinMax: [ 0, 8 ]
SizeMinMax: [ 0, 10 ]
Я действительно плохо разбираюсь в регулярных выражениях, может кто-нибудь научить меня, какое выражение мне нужно для этого?
Ответ №1:
Другой способ — заменить цифры сразу после открывающей скобки только тогда, когда они есть SizeMinMax:
раньше.
- Ctrl H
- Найдите, что:
SizeMinMax: [h*Kd
- Заменить на:
0
- ПРОВЕРЬТЕ обтекание
- ПРОВЕРЬТЕ регулярное выражение
- Replace all
Объяснение:
SizeMinMax: [ # literally
h* # 0 or more horizontal spaces
K # forget all we have seen until this position
d # 1 or more digits
Скриншот (до):
Скриншот (после):
Ответ №2:
Вы можете искать цифры, за которыми сразу следует запятая:
(объяснение под изображением)
Во всплывающем окне «Заменить» убедитесь, что переключатель:
- Оберните вокруг
- Регулярное выражение
При Find what
вводе используйте: d (,)
При Replace with
вводе используйте: 01
Регулярное Find what
выражение означает:
d - a digit
- any other trailing digits (with the d, matches 1 or more consecutive digits)
(,) - capture the comma to use with replace.
Регулярное Replace with
выражение означает:
0 - a literal zero
1 - this is replaced with the comma from the find.
Комментарии:
1. Отличный ответ. Одна из проблем, с которыми я сталкиваюсь при использовании регулярных выражений, заключается в том, что различные поисковые запросы и замены в разных контекстах (например, при использовании разных приложений, notepad, Visual Studio и т. Д.), Похоже, Требуют немного другого синтаксиса регулярных выражений. Является ли синтаксис notepad каким-то «стандартным» синтаксисом или особым «вкусом»?
2. @ChrisHalcrow … вы знаете, я не был уверен, нужно было проверить. Согласно их документации, в нем утверждается:
uses the Boost regular expression engine
. (при переключении параметра регулярного выражения) Вот ссылка на эту информацию. И Boost также совместим с PCRE (с небольшими отклонениями) в соответствии с этой ссылкой.3. 20 лет в программном обеспечении, и я только что узнал, что стандартом регулярных выражений является IEEE POSIX, а самый низкий уровень соответствия стандарту — BRE (базовые регулярные выражения). Где это оставляет регулярные выражения, совместимые с Perl, я не уверен?