Только для разновидностей PCRE!
Если выбранный вами язык использует движки PCRE (например, такие языки, как Perl, PHP или R), то вы можете использовать управляющие глаголы обратного хода чтобы заставить двигатель забыть что-то соответствовало. Нужное выражение:
capacity of \d+\.\d+(*SKIP)(*FAIL)|\d+\.\d+
См. На Regex101
Это работает следующим образом:
- Мы настроили шаблон на first попытайтесь найти то, что нам не нужно - полный шаблон
capacity of \d+\.\d+
, который разрешается до текста «емкость 60,7». - Затем управляющие глаголы
(*SKIP)(*FAIL)
заставляют двигатель забыть этот матч и продолжить с этой позиции и далее . (*SKIP)
инструктирует его никогда не возвращаться за пределы этой точки (*FAIL)
делает паттерн всегда неудачным в этой точке
- Наконец, так как мы do хотите сопоставить
\d+\.\d+
, который настроен как шаблон изменения через |
.
Порядок изменений важен - если вы пытаетесь сопоставить \d+\.\d+
, тогда механизм регулярных выражений никогда не будет проверять следующее изменение, так как первое было удовлетворено. Следовательно, вы хотите, чтобы шаблон, который нужно удалить, был первым.
Один простой способ прочитать регулярное выражение: «не обращайте внимания на что-либо подходящее первое , только совпадите с последним».
Если вы хотите отменить больше элементы, то вам нужно настроить их как изменения таким же образом, например, вы не хотите совпадать с ди git с последующими a
, b
или c
, но с чем-либо еще, так что Вы можете сделать
\da(*SKIP)(*FAIL)|\db(*SKIP)(*FAIL)|\dc(*SKIP)(*FAIL)|\d
См. на Regex101