Как изменить первое число в скобках с помощью Notepad

#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:

Вы можете искать цифры, за которыми сразу следует запятая:
(объяснение под изображением)

введите описание изображения здесь

Во всплывающем окне «Заменить» убедитесь, что переключатель:

  1. Оберните вокруг
  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, я не уверен?